No more than 45 minutes after I post a comment about writing more about the certification tracks do I get inspiration to write a post about an exam and taking courses to meet objectives required by those exams. And if you are my loyal reader, you know that my inspiration is 99% anger.
Now I know I haven’t actually talked about what the requirements are for the MCAD or MCSD, but let me talk about the 70-310/70-320 exam anyways. It is the Developing XML Web Services and Server Components exam. I highlighted the Server Components text for a reason: most people don’t notice that. They get into that exam thinking that it will be solely on XML Web Services and maybe some .NET Remoting. "Add the WebMethod attribute" and "Add Web Reference" they keep repeating to themselves as they sit down to the exam, only for the first question to be "how do you consume the constructor string from a serviced component" or some other non-XML Web Service question. Talk about a kick to the gut.
Anyways, knowing how to create and consume serviced components is knowledge required to pass the exam. According the Microsoft site, the exact knowledge is "Implement a serviced component" and "Manage the component by using the Component Services tool." To gain this knowledge, according to the official course matrix you need to take course 2557: Building COM+ Applications Using Microsoft .NET Enterprise Services," a 5 day COM+ extravaganza (note, the XML Webservice course is 3 days and all I can find on remoting is a single chapter in another course. That is optional to cover). Take a look at what you should know at the completion of the course:
- Describe the history of server-based applications and describe the COM+ runtime architecture.
- Use attributes to configure an assembly as a COM+ application and create components that use just-in-time (JIT) activation and are synchronized.
- Create data access components that use Microsoft ADO.NET to retrieve or update data in a database.
- Create transactional components.
- Help protect an enterprise application by using COM+ services role-based security.
- Manage state in JIT activated components.
- Create compensating resource managers to enable transactional support for resources lacking a resource manager.
- Use loosely coupled events to send notifications to other applications.
- Create queued components.
- Debug COM+ applications and describe common application-failure scenarios and how to solve these failures.
- Create scripts for managing deployment and administration.
- Use the enhancements provided by COM+ version 1.5 to improve the scalability, availability, and manageability of COM+ applications and use COM+ features such as services without components (SWCs), bring your own transaction (BYOT), and Phase Zero notification in applications.
Holy crap. All this to meet two bullet points in a much larger bulleted list.
Now, there is obviously some very cool stuff COM+ can do. And I believe very strongly that an MCSD should have this stuff down pat. But to "have" to take a 5 day intense course on COM+ for a very, very minute portion of the total MCAD exam in insane. Let’s look at the target audience of MCAD: "Develop, test, deploy, and maintain department-level applications, components, Web or desktop clients, or database and network services using Microsoft tools and technologies." COM+ seems a bit over kill for department-level applications to me. Especially considering that they are looking for candidates with one to two years of development experience.
Where I (and my anger) come in is the fact that as a training center, we get people looking to take the full MCAD track and see 2557 listed on the Microsoft site. And let’s be honest, COM+ courses aren’t exactly selling like hot cakes right now so it is simply not on our schedule for such a small center. So do we tell students to go else where for the training, or do we offer a course they don’t need really need? Neither option is a good one.
Now, I've got two complaints. One, it'd be nice if the MOC and Certification people had the courses and objectives matched out better. For example, if there was a 5 day distributed applications course that had the three day XML Webservice course, plus a day on an overview of COM+ and an overview of .NET remoting, I'd be pretty happy when it comes to the courses. But I also personally think that there is something flawed with the certifications, based on the target audience Microsoft has laid out. Here’s how I’d do the certifications for developers:
- Web Applications exam
- Windows Applications exam
- SQL Server (or BizTalk)
- Same as MCAD plus:
- Distributed Components exam (COM+, .NET Remoting, and XML Webservices)
- A security exam
- Analyizing Solutions architecture exam
The one thing I’d make sure students could do for the MCAD is consume an XML Webservice. But besides that, I don’t think the target audience for the MCAD is really going to be excited about .NET Remoting or COM+, or should even attempt to use those technologies without a better background to begin with.
Now, I haven’t put any thought to any of this, so feel free to comment and call me an idiot.