70-316: What's So Sharp About C#?
Visual C# .NET. C# promises the power of Visual C++ and the rapid development of Visual Basic. But be warned: Neither it nor its exam are for the faint of heart.
Microsoft's release of Visual Studio.NET wasn't quiet. Many developers
have been anxiously awaiting the release of the new platform to see what
types of toys were included. Arguably, the most major addition was the
brand new language, Visual C# .NET. The powers at Microsoft decided we
needed a new language with all the best features from both Visual C++
and Visual Basic (and, of course, a few from Java).
One of the most common questions I get as a developer and C# junkie is,
"Why did Microsoft create a new language? I have enough trouble keeping
up with Visual Studio as it is!" Being an "old school" Visual C++ programmer,
I know how complicated it is to get everything just right. I also know
the power of C++. I also know the severe migraines that memory leaks cause.
I've spent many a late night looking for answers to obscure errors in
MSDN that I couldn't figure out for the life of me.
Simply put, we needed a language that would give us rapid development
abilities without some of the headaches. Thus, we get Visual C#. If you've
programmed in C, C++, or Java, then it shouldn't be much of a challenge
for you to learn C#. Even if you know Visual Basic .NET, it's merely a
change of syntax for the most part. The real challenge comes in deciding
to start out a project with C# if you've never programmed before or if
you're solely a Visual Basic 6.0 programmer.
"If you have solid Java or C++ experience, learning
C# won't be tough. Otherwise, get ready for a roller
70-316: Developing and Implementing Windows-based
Applications with Microsoft Visual C# .NET and Microsoft
Visual Studio .NET
Live as of June version expected in June.
Who Should Take It?
Core or elective credit for MCAD; core credit for
What Courses Prepare You
2389: Programming with Microsoft ADO.NET
2555: Developing Microsoft .NET Applications
for Windows (Visual C# .NET)
There's a great deal of information covered in the exam that Microsoft
recently released for this language You need to be a competent C# programmer,
but you also need to understand how databases operate, how operating system
security works, and how to deploy projects once you're finished. Let's
get started by looking at some user interface basics.
Snazzy Screens and Cool Controls
As a competent developer, you should be proficient in creating
Windows applications that have a smooth look and feel. Be familiar with
where all menus, toolbars and user interface elements are placed. Also,
make sure you know where the appropriate help menus should go. While we're
on the topic of help, you should know how to construct your own HTML help
files for users.
It's also important to understand all the different types of user interface
elements and all the many different ways that controls can be created.
For example, you're going to want to understand how to use the Windows
Forms designer as well as how to create controls and build a more dynamic
interface for the user programmatically.
We mustn't forget legacy environments. Make sure you brush up on ActiveX
controls from Visual Studio 6.0. Know how to instantiate the control and
work with it in the new environment. It's especially important to understand
how legacy components interact with the .NET development environment.
Although sometimes we'd like to forget legacy applications, remembering
the basics is important, especially when you're considering migration
It's also absolutely imperative that you have a good grasp of how COM
and COM+ fit into the picture. If you're an old school Visual Studio 6.0
programmer, you'll know this stuff hands down. Make sure you know how
to use a COM component inside a .NET project. Also, be certain that you
understand the scope of an object and where it can be used. Remember,
the .NET environment is different from the days of COM, so be ready for
some tricks and traps here.
Tip: Dynamic control creation is important to know. Microsoft is focusing
more on user-driven content than static content with .NET.
Around the World in 80 Keystrokes
If you're not a developer who's focused on enterprise-based applications,
you may not have a lot of exposure to localization and globalization of
software. This is one area where Microsoft believes a certified developer
should have a significant background. The first step in the path is to
understand the difference between localization and globalization. Localization
is making sure an application is appropriate for a specific region or
area of the world; globalization is the process of making an application
suitable for the entire world.
Localization is usually achieved by creating .NET satellite assemblies,
or components that contain locale-specific data. Each localized version
can then contain information specific to that area or region. To ensure
you don't confuse or offend anyone, it's important to make sure you have
content experts from those areas if you have a multicultural application.
Make sure you understand how to create .NET satellite assemblies and
localized components. A portion of this has to do with what operating
system name and version you have, but there are specific steps you can
take to package and deploy your application properly. It's also important
to know which elements of an application should be standard and which
ones should be localized.
A Data-Driven World
Of course, what development exam would be complete without a good
workout in the realm of data? True to form, Microsoft expects you to be
an expert with data. You need to know how to write SQL code in your sleep,
while standing on your head, or even when singing in the shower! Simply
put, if you don't know SQL, you're probably not going to pass this test.
Know the classes that come with the .NET Framework, especially those
in the System.Data.SqlClient namespace. Also, know when it's appropriate
to use the System.Data.OleDbClient namespace and what the benefits and
detriments of that particular namespace are.
Not only do you need to be familiar with the syntax of the language,
you also need to be able to determine what's optimal for a given situation.
Be prepared to evaluate multiple pieces of code, all of which could possibly
work, and pick which one works best for a given set of circumstances.
Plan to test your skills with the new "toys" that have been introduced
into the .NET world. For example, XML is playing more of a role in business
environments as a central data exchange technology. Microsoft is betting
the farm on the idea that XML is going to shape the fiber of the computing
industry in the next few years. As a result, bone up on all the nifty
and neat XML features that are built into ADO.NET.
Learn how to use the DataSet object to generate XML and and vice versa.
You should know how to create schemas and validate the data, as well as
create strongly typed datasets. Overall, you need to be extremely familiar
with the XML world as we know it in .NET to succeed on this exam.
Tip: Focus your data studies on what works optimally with SQL Server.
Brush up on stored procedures if you're a little rusty.
Set The Alarm
Security is a hot button. If your application isn't secure, it
can be a literal death sentence to sales. So how do you achieve security?
Of course, you can't. Even Microsoft has a large full-time staff devoted
to fixing security issues in Windows operating systems. If the bad guys
want to get in badly enough, they will.
However, what you can do from a security standpoint is not leave anything
obvious open. For instance, change your SQL sa account password. Don't
use it for blanket data access across your application. Also, don't grant
any guest or anonymous account administrative or full access to your application
or its data files. All of these things are literally inviting an attack.
And there are plenty of people out there who do exactly what I just said
not to do.
Make sure you understand how security works in .NET. Understand which
accounts have privileges to run which sections of code. Although it may
be a little bit of work, study the .NET policy extensions and how they
fit into the operating systems your company is running. Most of all, remember
the most important rule: Only give access to accounts that truly need
it. Work from a "most restrictive" standpoint. Although it's much easier
to grant full control to everybody, you'll regret that action in the long
Tip: Understand the different types of SQL Server authentication as
well as the different types of authentication offered by Windows operating
After the application's been written, the rather extensive debugging
process usually begins. Make sure you understand how the Visual Studio
IDE debugger works. Also be certain that you can distinguish between the
IDE from Visual Studio 6.0 and the IDE from Visual Studio .NET. There
are definitely some tricks to be thrown in here.
Although we had a Call Stack utility in Visual Studio 6.0, the Stack
Track is much better now with .NET. Make sure you understand how to use
this new tool to view which functions are called from which section of
code. Also, be sure you know how to set a watch as well as use the Immediate
Tip: Be sure you can pick out code errors when given examples. Specifically,
know how to resolve looping errors, import errors, and general syntax
Call Out The Code
Once you've gone through an extensive debugging process, you're
ready to deploy the code to the world. Although a developer does sometimes
do the installation on client machines, more often than not a network
administrator is dispatched for the job. Yet Microsoft has stated that
deployment is classically a developer's role. That's a clue!
If you have a significant background in networking, deployment should
be pretty easy. If not, perhaps you should get a basic networking book
and understand how bandwidth and network load relates to deployment. Make
sure you can pick the best way to deploy a particular application for
a given scenario. There are often many ways to do it, but you need to
be able to pick the best way possible.
Tip: Make sure you understand Windows Installer technology and how
it relates to applications written in Visual Studio.NET.
Don't Hold Back
If you have a solid object-oriented programming background, this
exam won't be too tough for you aside from learning the .NET Framework.
If you don't have a good level of experience, you'll definitely need it
before you try to tackle this one. Good luck!