In this article, I'll go over the 70-310 exam, XML Web services and
Server Components Development with VB.NET, although most of what I have to say applies equally to the 70-320 exam (C#).
Since originally writing this article, I found out that I did indeed
pass, although with the new "pass-fail" scoring, I have no idea by how much.
To be honest, I did not spend as much time preparing for this exam as I
usually do. I spent most of the time prior to the exam traveling. (My
daughter's volleyball team is fifth in the nation, thanks for asking.)
This exam was a bit harder than the "Windows application" exam, but I
suspect that was because much of the scope of this exam is centered on
technology that is new ground, at least for VB programmers. I found it
useful to group my study efforts into four areas:
- XML Web services
- Windows services
- Serviced components
- .NET remoting
Virtually the entire exam was focused on questions from these four
areas. As you might expect, the majority of the exam centered on Web
services. .NET remoting seemed to get the next most coverage, with Windows
services and serviced components coming in a distant third and fourth.
However, to get a passing score, I would suggest that none of the four areas
be ignored.
I started my research with an MSDN discussion, "Remoting and XML Web
Services in Visual Basic .NET" (http://msdn.microsoft.com/library/shared/
comments/asp/threadbody.asp?aID=756868). Usually, you can find a starting point in MSDN and drill down and around the various topics from there.
I don't want to parrot the Microsoft published exam objectives, but
obviously, you will need to know how to build and consume Web services. This
includes any attributes that are available to place in the method
signatures. Know how to dynamically redirect a Web service in case the
normal server is down. Learn how UrlBehavior is used and how web.config is
set up to support it.
Windows services are new to VB programmers, but have been available to
C++ programmers all along. While building them and deploying them is not too
difficult, thanks to the .NET IDE, you'll need to know more detail for the
exam. Some background reading in this area and some practice creating one or
two services, deploying them, and then debugging one of them should be
sufficient for the exam. Know the major events (like OnPause and OnStart),
how to use InstallUtil, and how to hook into a running process from the IDE
for debugging purposes.
Serviced components are basically a way for .NET to interact with some
of the features present in COM+. The main one that I would focus on is the
use of transactions, including what method attributes are available. There
are some good MSDN pages on this, and if you have the O'Reilly book .NET
Framework Essentials, scan pages 87 through 101.
.NET remoting is basically a much more powerful version of Web services.
It is useful to know the differences between the two and when it is
appropriate to use each.
In each of these four areas, an understanding of the big picture will
help with the questions where the correct response eludes you.
Overlaying these four major areas are subcategories for study:
- Manipulating data
ADO.NET
XML
SQL Server
- Security
- Debugging
- Deploying
Now, let's spend a little more time in each of these areas.
As was the case with the 70-306 exam, the two subcategories that get the
most attention are ADO.NET (with more emphasis on XML in this exam) and
security. It's apparent that Microsoft's renewed focus on "trustworthy
computing" has permeated all the new exams. It appears that in addition to
making the software less vulnerable, Microsoft wants to ensure that
developers configure the software to take advantage of the new security
options by pushing new best practices for a more secure application.
Data, Data, Everywhere...
ADO.NET questions make up a sizable chunk of the overall exam. If you
don't know your ADO.NET objects, you'll not likely pass the exam. However,
knowing ADO.NET in detail will help you in all of the .NET exams.
Know all the moving parts of ADO.NET: Adapters (both SQL and OleDB), the
Command object, the Connection object, DataReaders, and DataSets. Understand
how to pass parameters into a stored procedure. Know how to set up
relationships between tables and create constraints within a DataSet object.
Finally, you should know at least the basics of XML, for example, how to use
the XML DOM methods to create a well-formed XML document.
Know how and when to use the various Execute methods of the ADO.NET
Command object (e.g., Scalar and NonQuery).
Know when you need to explicitly Open and Close a database connection
and when you don't.
We Don't Need No Stinkin' Passwords
Oh yes, you do. And a valid role wouldn't hurt either. As with all the
new .NET exams, it's important to understand the various security models.
Spend some time in MSDN (a good start is the MSDN's "Key Security Concepts"
page in the .NET Framework section, (http://msdn.microsoft.com/library/en-us/
cpguide/html/cpconkeyconceptsinsecurity.asp). Understand how to set up and administer role-based security, as well as authorization strategies and permission settings in the method signatures and config file.
As I mentioned earlier, Microsoft is mirroring its focus on secure
computing in its exams.
And Now for Something Completely Different
You should know at least a little bit about the format of a DISCO file
and the web.config file.
It's important to know how to give a component a string name and how to
register a component in the Global Assembly Cache (GAC). Also, understand
the algorithm and the rules used to select a particular version of a
component if multiple versions exist, either in the GAC or in the
application's own folder. This information will be handy for all the .NET
exams. Although I haven't seen a question in this area, I suppose it would
be good to know how to remove a component from the GAC as well.
You should know how to call an unmanaged DLL (non-ActiveX) from .NET
code and also how to consume COM components from .NET code.
It's worth spending a little bit of time to understand the big picture
behind SOAP, including what SOAP extensions are used for and the various
types of SOAP exceptions.
You should know how to set up a .NET component to be accessible to the
COM environment (COM-callable).
Some Final Thoughts
As I've said before, whenever taking a Microsoft exam, if you're unsure
which answer is correct (in other words, if you're guessing), choose the
answer that puts the Microsoft product in the best light. The exams, while
focused on evaluating the developer's knowledge, also seem to contain a
marketing component.
Another strategy crucial to success on these exams is to read each
question carefully. Microsoft likes to insert phrases like "using the least
amount of code" or "with the minimal disruption to the users." These are
clues that there might be two "correct" answers, but only one that responds
to the directions in the question. Read critically.
Spend some time fishing around in the MSDN documentation (the online
version and any recent MSDN library CD are the best bets). You'll rarely
find the answer to an exam question verbatim in the MSDN library, but it
might lead to writing some sample code that will help you grasp the
concepts.
Pay particular attention to the Microsoft online study guide. While I
have often seen exams that did not have a question on an area in the study
guide, I have never seen a question on an area that was not in the study
guide. If you feel a particular area probably won't get heavy coverage and
you also feel you can afford to miss a few points, then set your schedule
accordingly. I've tried to add some helpful advice in this column on where
to concentrate your study efforts.
Conclusion
In future articles, I'll review the Web Application exam (70-305/315)
and perhaps go into more detail on specific topics covered in the various
.NET exams. As always, feel free to share your experiences with me at
RLCornish@cs.com. Good luck on the exam!
About The Author
Randy Cornish is an experienced VB developer, COM/.NET architect, and MCSD with more than 24 years in the computer industry. He works as an independent consultant in the Chicagoland area, with a focus on Microsoft technologies. In addition to coding and architecting, Randy has done classroom teaching, training, material development, and management of high-performance teams.
rlcornish@cs.com
All Rights Reserved
Copyright © 2004 SYS-CON Media, Inc.
E-mail:
info@sys-con.com