Tuesday, November 4, 2008

MCTS 70-536 Microsoft Certification .NET 2.0

MCTS 70-536 Microsoft Certification .NET 2.0
Hey Now Everybody,

I’m going to start posting on some content I’ve been studying for a Microsoft Certification Technical Specialist Exam (MCTS) 70-536. I’ve created a page on my domain ChrisCatto.com where I’m going to have a summary & a bunch of links to all my posts.
I feel that this will be some great content & it will also help me to study by working more with the material. I’ve been sources I’ve been studying is from the self paced training book. I’ve been reading the book & there is also a cd that you get with the book. The cd includes ~400 practice questions that have been really good for me to learn from. They are broken down into 7 categories. I’ve created a word document that is over 70 pages from these questions. I plan to make many small posts so any one can read one post & learn a small topic or use it as a reference.
As always all comments welcome.
Bye for now!
Catto

4 comments:

Anonymous said...

I have this book, and the practice tests that come with it are nearly worthless. A significant number of the questions are just plain wrong.

For example: "To improve the reliability of your code, you want to verify an important value and stop execution if the value is not set properly. However, you want to stop execution only during debugging. You do not want users with release versions of your application to experience problems."

The choices are Debug.Flush, Fail, Assert, and Indent. Both Debug.Fail and Debug.Assert will stop execution, but only Debug.Assert will do it based on the value of an expression. The test explanation claims that Debug.Fail is the only correct answer, and wrongly claims that Debug.Assert won't stop execution.

Anonymous said...

Another example:

"You are writing a single-threaded application that performs custom performance logging to enable users to use the Performance console to track the current number of users who have connected to your application."

Choices are: PerformanceCounter.IncrementBy, Decrement, Increment, and RawValue.

RawValue, Increment, and IncrementBy will all work, but the practice test will only accept RawValue, because that performs best in a single-threaded application when you don't have to worry about multiple threads changing the value.

I want to know this: what kind of a moron writes a single-threaded multi-user application, and then pretends to give a shit about performance?

Anonymous said...

Or this one:

"You are writing a multithreaded application where multiple threads must be synchronized so that they do not attempt to access the same object at the same time.
Which of the following C# code samples demonstrates how to synchronize threads properly?"

In fact, NONE of the given code samples will work. The one that the test insists is correct won't even compile, as the variable x is never initialized to any value.

private Object x;
Monitor.Enter(x);
try {
// Code that needs to be protected by the monitor.
}
finally {
Monitor.Exit(x);
}

Anonymous said...

I'll stop after this one...

"You are writing a multi-threaded application, and multiple threads need to read and write the same file. At times, a thread will need to read from the file and then immediately write to the file.
What is the most efficient way to handle this in the thread?"

All of the answers involve the ReaderWriterLock class, which has been deprecated because it has bugs that can result in application deadlocks, and because it is often slower than a simple exclusive lock. The official replacement for ReaderWriterLock is ReaderWriterLockSlim.