Exam Reviews

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.

Visual C#

Reviewer's Rating
"If you have solid Java or C++ experience, learning C# won't be tough. Otherwise, get ready for a roller coaster ride."

Exam Title
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 MCSD.

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 issues.

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 run.

Tip: Understand the different types of SQL Server authentication as well as the different types of authentication offered by Windows operating systems.

Pesky Bugs
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 window.

Tip: Be sure you can pick out code errors when given examples. Specifically, know how to resolve looping errors, import errors, and general syntax errors.

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.

Additional Information

You'll find the objectives for 70-316, the Visual C# .NET exam, here: www.microsoft.com/traincert/exams/70-316.asp.

Microsoft claims that more than 225 books have been published on various aspects of developing with Visual Studio .NET. Reviewer and editor Mike Gunderloy has commented on many of those in Developer Central, a monthly electronic newsletter published by MCP Magazine. Sign up here: http://lists.101com.com/NLS/pages/main.asp?NL=mcpmag&o=developer.

To read the MCP Magazine review of 70-306, the Visual Basic edition of this exam, click here.

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!


comments powered by Disqus

Subscribe on YouTube