.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.
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!
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 Web server controls, HTML server controls, user controls, and HTML code to ASP.NET pages.
Implement navigation for the user interface. Smart navigation, server.transfer, server.execute
Validate user input. Validation controls. See Add Web server controls.
Implement error handling in the user interface. Try … Catch … Finally; exception raising
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.
Instantiate and invoke Web services or components.
Implement globalization.
Handle events. Delegates, publishing and subscribing, via overriding the base class, via attaching delegates, through AutoEventWireup.
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.
2 Creating and Managing Components and .NET Assemblies
Create and modify a .NET assembly.
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
Debug, rework, and resolve defects in code.
5 Deploying a Web Application
Plan the deployment of a Web application.
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.
Configure security for a Web application.
Configure authorization. Authorization methods include file-based methods and URL-based methods.
Configure and implement caching. Caching types include output, fragment, and data.
Configure and implement session state in various topologies such as a Web garden and a Web farm.
Install and configure server services.
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.
Developing and implementing web applications with VB.Net and VS.Net
Mike Gunderloy
Que
Microsoft's MCP web site