|
.NET Certification: Exam 70-305...
This article shall introduce and consider the requirements for .NET certification, the last exam component of
which progressed from beta to full exam status in early 2003.
By: Chris Sully
Date: July 19, 2003
Printer Friendly Version
Introduction
This article shall introduce and consider the requirements for .NET certification, the last exam component of
which progressed from beta to full exam status in early 2003. As well as a general overview of .NET certification
and why you might want to consider it I'll look particularly at Exam 70–305: Developing and Implementing Web
Applications with Microsoft Visual Basic® .NET and Microsoft Visual Studio® .NET. My hope is the information
presented will prove useful to those considering and those due to take this and other .NET certification exams.
I've always been severely circumspect of Microsoft certifications, in particular whether they accurately measure
an individual's ability. I am aware that I'm not alone in this point of view. I know of people who have studied
for one day for Microsoft certification exams using just sample exams and with very little practical experience
with the tools and technologies but have sailed through the exam. Conversely I know of experienced developers who
failed the development exams. This is a primary consideration: no matter how experienced you will severely
compromise the likelihood of your passing the exam unless you explicitly prepare for it.
Personally I've tended to only undertake certification exams when they've been part of job goals set by managers
that might affect pay raises! This and related issues are the main reasons for taking these exams ... potential
employers will see certification as proof of your skill set and many of the better jobs one sees, in the UK at
least and particularly those that are more consultancy oriented, are increasingly demanding Microsoft
certification. The question of how well passing Microsoft certifications reflects your ability to develop
Microsoft solutions then becomes largely redundant, though will be an important consideration to those who can't
see themselves looking for alternative employment in the short to mid term future.
For the small organisation a further reason for undertaking Microsoft certification is to gain Microsoft Partner
status with the various benefits this offers. You need at least two Microsoft Certified Professionals in your
organisation to be eligible to apply for Microsoft Partner status. The savings you make simply on MSDN
subscriptions justifies the cost of Microsoft Partnership. Plus, importantly, you have the allied marketing
opportunities to exploit. I mention this as this is my main reason for myself, as director of a company, for
ensuring that my fellow employees and I achieve accreditation ... a Microsoft Software Development company which
isn't a Microsoft Partner would seem circumspect to me as a potential client. The other restriction to Microsoft
Partnership is that the accreditations must be in the latest Microsoft technologies. So .NET is just the ticket!
The Options
There are two levels of .NET certification: The Microsoft Certified Application Developer (MCAD) qualification
requires three exam passes. Five are required for Microsoft Certified Solution Developer (MCSD) including a desktop
application development.
To fulfill the core certification requirements of MCAD, you are required to pass one exam focused on either Web
Application Development or Windows Application Development in the language of your choice (VB.NET or C#), and then
pass one Web Services and Server Components exam. In addition to the core exam requirements, you must also pass one
elective exam that provides proof of expertise with a specific Microsoft server product.
I'm more VB than C# so the choice of pertinent exams for MCAD for me would be:
Exam 70–305: Developing and Implementing Web Applications with Microsoft Visual Basic® .NET and Microsoft Visual
Studio® .NET
Exam 70–306: Developing and Implementing Windows-based Applications with Microsoft Visual Basic .NET and Microsoft
Visual Studio .NET
Exam 70–310: Developing XML Web Services and Server Components with Microsoft Visual Basic .NET and the Microsoft
.NET Framework
and the most obvious choice for most as an elective exam, including me, would be:
Exam 70–229: Designing and Implementing Databases with Microsoft SQL Server™ 2000 Enterprise Edition
For MCSD, you need to pass all 3 aforementioned .NET exams and one additional:
Exam 70-300: Analyzing Requirements and Defining .NET Solution Architectures.
These as well as an elective, as above.
For MCAD you get to choose whether you want to specialise initially in windows or web development. As principally a
ASP.NET developer, it's web for me and I suspect this will be the case for most DotNetJohn readers. You can see
there is also a ready progression from MCAD to MCSD ... basically you need two more exams, as the three MCAD exams
will always count towards MCSD as well.
So, for starters I’m targeting, the following exams in the following order:
Exam 70–305: Developing and Implementing Web Applications with Microsoft Visual Basic® .NET and Microsoft Visual
Studio® .NET
Exam 70–310: Developing XML Web Services and Server Components with Microsoft Visual Basic .NET and the Microsoft
.NET Framework
Exam 70–229: Designing and Implementing Databases with Microsoft SQL Server™ 2000 Enterprise Edition
If there is interest I'll the review requirements of each of these exams, but I'll start in this article now with
a consideration of the exam requirements most relevant to DotNetJohn readers: Exam 70-305.
Exam 70–305: Developing and Implementing Web Applications with Microsoft Visual Basic® .NET and Microsoft Visual
Studio® .NET
I'm going to run through the exam objective guide with the odd explanatory comment where appropriate in red.
1 Creating User Services
Create ASP.NET pages.
- Add and set directives on ASP.NET pages. Assembly, Control, Implements, Import, OutputCache, Page (AspCompat,
AutoEventWireUp, CompilerOptions, ContentType, Culture, EnableSessionState, EnableViewState, EnableViewStateMac,
ErrorPage, Explicit, Inherits, Language, Src, etc.), Reference, Register.
- Separate user interface resources from business logic. The code behind model – with and
without pre-compilation.
Add Web server controls, HTML server controls, user controls, and HTML code to ASP.NET pages.
- Set properties on controls.
- Load controls dynamically.
- Apply templates.
- Set styles on ASP.NET pages by using cascading style sheets.
- Instantiate and invoke an ActiveX® control. Add an ActiveX control to the VS.NET toolbox and drag and drop onto your web form. Implementation via object tag and class id.
Implement navigation for the user interface. Smart navigation, server.transfer, server.execute
- Manage the view state.
- Manage data during postback events.
- Use session state to manage data across pages.
Validate user input. Validation controls. See Add Web server controls.
- Validate non-Latin user input. i.e. foreign languages. E.g. string indexing, comparing and
sorting data. See Implement globalization.
Implement error handling in the user interface. Try … Catch … Finally; exception raising
- Configure custom error pages. customErrors
- Implement Global.asax, application, page-level, and page event error handling.
Implement online user assistance. E.g. inline help, embedded help (controls, DHTML), 3rd party
tools. See Implement accessibility features
Incorporate existing code into ASP.NET pages. aspcompat page directive with late bound COM
components, client and server side COM components, runtime callable wrappers, TLBIMP, platform invoke
Display and update data.
- Transform and filter data. DataTable.Select, DataView
- Bind data to the user interface. Simple and complex data binding
- Use controls to display data.
Instantiate and invoke Web services or components.
- Instantiate and invoke a Web service. SOAP, DISCO, UDDI, WSDL, web references
- Instantiate and invoke a COM or COM+ component. See Incorporate existing code into ASP.NET pages
- Instantiate and invoke a .NET component.
- Call native functions by using platform invoke. See Incorporate existing code into
ASP.NET pages
Implement globalization.
- Implement localizability for the user interface. Cultures, CultureInfo, CurrentCulture,
CurrentUICulture and Invariant Culture, resource files
- Convert existing encodings. Unicode, System.Text
- Implement right-to-left and left-to-right mirroring. HTML dir tag
- Prepare culture-specific formatting. See CurrentUICulture, etc.
Handle events. Delegates, publishing and subscribing, via overriding the base class, via
attaching delegates, through AutoEventWireup.
- Create event handlers.
- Raise events.
Implement accessibility features. i.e. making your application usable by those with
disabilities: flexibility, choice of input and output methods, consistency and compatibility with accessibility
aids. See W3C guidelines.
Use and edit intrinsic objects. Intrinsic objects include response, request, session, server, and application.
- Retrieve values from the properties of intrinsic objects.
- Set values on the properties of intrinsic objects.
- Use intrinsic objects to perform operations.
2 Creating and Managing Components and .NET Assemblies
Create and modify a .NET assembly.
- Create and implement satellite assemblies. i.e. resource only assemblies that store
culture-specific information
- Create resource-only assemblies.
Create Web custom controls and Web user controls. Custom components, user controls, composite
controls, derived controls
3 Consuming and Manipulating Data
Access and manipulate data from a Microsoft SQL Server database by creating and using ad hoc queries and stored
procedures.
Access and manipulate data from a data store. Data stores include relational databases, XML documents, and flat
files. Methods include XML techniques and ADO.NET. Data providers, objects: connection, command,
parameter, DataReader, DataAdapter, FataSet, DataView; streams and backing stores, XmlDocument vs
XmlDataDocument
Handle data errors. SQLException and SQLError objects; optimistic vs 'last one wins' concurrency
4 Testing and Debugging
Create a unit test plan.
Implement tracing. System.Web.TraceContext, System.Diagnostics
- Add trace listeners and trace switches to an application.
- Display trace output.
Debug, rework, and resolve defects in code.
- Configure the debugging environment. Breakpoints and VS.NET debugging windows
- Create and apply debugging code to components, pages, and applications. Conditional
compilation, trace switches, trace listeners
- Provide multicultural test data to components, pages, and applications.
- Execute tests.
Resolve errors and rework code.
5 Deploying a Web Application
Plan the deployment of a Web application.
- Plan a deployment that uses removable media. Use CAB size option
- Plan a Web-based deployment.
- Plan the deployment of an application to a Web garden, a Web farm, or a cluster.
Create a setup program that installs a Web application and allows for the application to be uninstalled.
Windows Installer
Deploy a Web application. Setup project (editors: file system, registry, file types, UI, custom
actions, launch conditions); merge module project for components
Add assemblies to the global assembly cache. Strong naming, delay signing.
6 Maintaining and Supporting a Web Application
Optimize the performance of a Web application. Issues: caching, session sate, viewstate, low
cost authentication, boxing and unboxing, string builder, exception throwing, unmanaged code, managed providers,
stored procedures, database tuning, DataReaders, connection pooling etc.
Diagnose and resolve errors and issues. Event logs, performance counters and processes
7 Configuring and Securing a Web Application
Configure a Web application.
- Modify the Web.config file.
- Modify the Machine.config file.
- Add and modify application settings. AppSettings
Configure security for a Web application.
- Select and configure authentication type. Authentication types include Windows Authentication, None,
forms-based, Microsoft Passport, Internet Information Services (IIS) authentication, and custom authentication.
Configure authorization. Authorization methods include file-based methods and URL-based methods.
- Configure role-based authorization. WindowsIdentity and WindowsPrinciple
- Implement impersonation.
Configure and implement caching. Caching types include output, fragment, and data.
- Use a cache object.
- Use cache directives. Page and user control levels
Configure and implement session state in various topologies such as a Web garden and a Web farm.
- Use session state within a process.
- Use session state with session state service.
- Use session state with Microsoft SQL Server.
Install and configure server services.
- Install and configure a Web server.
- Install and configure Microsoft FrontPage® Server Extensions.
Conclusion
I hope this article has been useful to those of you out there preparing for or considering taking Exam 70-305. The
above identifies the key areas for consideration and includes a few pointers as to what is involved for some of
the less obvious areas. Key to passing the certification is studying to the requirements. Identify the areas in
which you are weak and address them. DotNetJohn articles cover much of the content above. In addition you would be
well advised to at least purchase one of the books out there specifically aimed at passing the exam. The one
included as a reference to this article is fairly good being particularly well structured though it could have
done with better proof reading and editing. At over a 1000 pages it certainly covers more ground than is strictly
necessary to pass the exam so it depends how much time you have to devote to your study. You will also need to
undertake practice exams whether purchased separately, with a book, or downloaded from the Internet. A good
representative set of practice questions with explanations is probably the most efficient use of preparation time.
I shall follow up this article in the near future with a some of my own hints and tips as to areas that are likely
to be tested within the 70-305 examination.
References
Developing and implementing web applications with VB.Net and VS.Net
Mike Gunderloy
Que
Microsoft's MCP web site
|