70-300: Architectural Artistry
This Microsoft exam challenges you in areas such as envisioning solutions, gathering and analyzing business requirements; developing specs; more.
Nearly a year after announcing it, Microsoft has released the final exam
required to attain the mighty crown of the MCSD.NET. I'll bet you're wishing
this was a slam dunk, right? Well, my would-be Michael Jordan, I'm hoping
your day won't be ruined when I say you're going to have to make a goodly
number of shots from the three-point line to get through this one! This
exam is one of the dreaded design exams, and Microsoft hasn't disappointed
us with a weak effort. Not only is it challenging, but it'll last a long
time when it's released in live form. Be prepared for a couple of fouls!
This exam provides several lengthy case studies that you need to read
and then answer questions on. Each case study describes a business and
its specific problem and then probes you as the architect/developer to
provide the solutions. Some of the questions are the standard multiple
choice, and some require that you use a treeview or drag-and-drop to "draw"
an answer (see figure).
|Microsoft's downloadable demo lets you try out samples
of new item types that you may find on its exams. (Click image
to view larger version.)
Of course, being able to code properly is a staple of any programmer's
repertoire. Being able to piece the solution together is at least equally
important though. This exam definitely tests architectural skills. This
is difficult because there are always different solutions to each problem.
You need to be able to figure out what is essential information and what
isn't. Be prepared to make judgment calls when it comes to technical feasibility
as well as good ol' business sense.
Sure, the latest technology is always fun to play with, but does it solve
the specific business issue for the client on a long-term basis? As Microsoft
shows in this exam, it's important to view each and every aspect of the
problem, including the current environment, user base and even dealings
with outside partners.
Also vital to the project is the set of standards you and your team will
follow. Likewise, deciding where error handling will take place, how you
manage the application's state (especially for Web applications) and planning
security are all critical portions of an application's design.
Tip: Make sure you know security well. It will be extremely detrimental
to your project's success if you develop an insecure application.
Analyzing .NET Requirements
Analyzing Requirements and Defining Microsoft .NET Solution
Live in February 2003
"Are you a programmer or are you an architect? This
test challenges you to make a distinction."
Who Should Take It
Core credit for MCSD.NET
1846: Microsoft Solutions Framework (MSF) Essentials
2710: Analyzing Requirements and Defining Microsoft
.NET Solution Architectures
2090: Modeling Business Requirements to Create
a Database Using Microsoft Visual Studio .NET Enterprise
To download a program that shows the newest question
types being used in Microsoft exams, go here: http://microsoft.com/
If you think data modeling involves posing for the camera or that
DSS refers to satellite television, you should probably stay away from
the IT field! Fortunately for you database jockeys, this section will
be a piece of cake. One of the first things you should do when designing
a solution is to lay out a rough estimate of what your data model will
look like. Once you've done that, you can work on other things. As you
know, if the database design is poor, the rest of your application, no
matter how good will follow it right down the path with your good intentions.
In 70-300 Microsoft emphasizes the importance of thorough database design.
Be prepared to hash out tables in every possible way. You should be able
to garner enough information from the case studies to figure out what
the client needs to have in the database. In addition to deciding what
fields are available, you need to be able to specify primary and foreign
keys as well as UNIQUE constraints, CHECK constraints and IDENTITY fields.
Although you don't need to be a database administrator to pass this exam,
it certainly wouldn't hurt. It's obvious that Microsoft wants us to be
sharper and more efficient on the database side of the house. Be sure
to study this information well.
Tip: Being a SQL Server expert will definitely help you out. You will
fail this exam if you don't know database design.
Once you have your data model in place, you should begin designing
the object model and start wrestling with some of the technical issues
the project faces. For example, you should decide whether or not your
application will require clustering or application servers such as COM+
Services in order to run. Make sure the security model you have chosen
works appropriately for the operating systems in question.
If there's a legacy environment in place, you'll need to fight the interoperability
battle. Usually, it's not feasible for a company to abandon the existing
system; so the old application needs to be phased out or made to work
with the new application for a period. Sometimes there are legacy databases
and operating systems in play as well. Make certain you can identify which
items are considered legacy and more importantly, how the .NET Framework
works with them. Also be able to provide a logical upgrade path that isn't
ridiculous to implement.
If your application is going to be used in multiple parts of the world,
you need to deal with the business side of this as well as the technical
implementation. Understand how to use left-to-right mirroring (and vice
versa) and also know how to use resource and satellite assemblies.
Getting the physical architecture of your application completed is key.
Know how many database servers you need as well as where your databases
go. Also know where your Web servers and application servers will be if
you're going to use them. Last, make sure you have the order of your deployment
set up and the method you'll use to deploy (and patch) the code. Remember,
the code is useless unless you get it to the servers and clients first.
Tip: Make sure you have a background in networking, especially clustering,
SQL Server security and IIS/NTFS permissions.
Raising The Standards
Throughout your development project, you'll need to develop standards
and processes that will be your sword and shield for every possible circumstance.
Everything needs to be managed: source control, reviewing code, even scheduling
code pushes to production. If you don't define these things in advance,
your project won't do well because members of the team will be running
amok whenever a milestone needs to be crossed.
Microsoft remembered to place an emphasis on process and project management
on this exam. After all, an MCSD is defined as a senior architectural
professional with some project management experience included in the package.
In that role, you need to be able to organize these types of functions.
This exam is experience based. There isn't a whole
lot you can do to prepare for this other than have the
experience. The material isn't objective. So, in order
to practice, think up a small application to develop
to improve something you do in the course of a normal
day. Do the following:
- Create a statement that describes your business
- Make a list of things that your application needs
- Develop a data model for your application. Don't
forget stored procedures and indexes!
- Use the data model to hash out an object model.
Decide what kind of application this will be (single-ier,
two-tier or n-tier).
- Decide what .NET technologies you'll use.
- Program the application.
- Deploy the application.
The Crowd Goes Wild
While project design and management isn't the hardest thing to
do in the world, Microsoft certainly presents a challenge in this exam.
If you don't read carefully, you may select the wrong answer at a crucial
moment. If you passed the other .NET development exams, you've proven
your technical expertise. Now comes your chance to pick up this gauntlet
that Microsoft has thrown down. Good luck!