.
Show Changes Show Changes
Print Print
Recent Changes Recent Changes
Subscriptions Subscriptions
Lost and Found Lost and Found
Find References Find References
Rename Rename
Search

History

7/9/2008 5:38:37 AM
189.10.189.66
7/8/2008 5:48:57 PM
87.54.41.132
7/8/2008 7:50:12 AM
200.195.95.38
7/7/2008 10:34:43 PM
200.195.95.38
7/7/2008 3:08:04 AM
202.154.255.5
List all versions List all versions

MCPD Web Upgrade Exam

Exam Details

Candidates for this exam work on a team in a medium or large development environment that uses Microsoft Visual Studio .NET 2003 Enterprise Developer or Visual Studio 2005. Candidates should have a working knowledge of Visual Studio 2005 and a sound knowledge of the new features of ASP.NET 2.0. Candidates should have at least two years of experience developing applications by using the Microsoft .NET Framework.

Candidates should have at least three to four years of on-the-job experience dedicated to Web application development. In most cases, candidates will be full-time developers who develop server-side ASP.NET code that creates the browser-based, client-side interface to an application.

This certification exam measures your ability to build interactive, data-driven Web-based applications with Web forms, ASP.NET, and the .NET Framework for both intranet and Internet uses.

Exam Code 70-551
Minutes To Complete ? minutes
Number of Questions 90 in beta
Passing Score ?
Adaptive No

Official Microsoft Stuff

Links to Other Sites

MSDN for Official Objectives

Section 1 - .NET Framework Fundamentals (30 Questions)

Although this section does not have a name, I have decided to call in .NET Framework Fundamentals. That is because it has to do with understanding some of the new classes and components of the .NET 2.0 Framework. I have tried to highlight the NEW classes.

In all of the new upgrade exams, Section 1 is identical.

Good review of section 1 is also here - http://blog.denoncourtassociates.com/CategoryView,category,Certifications.aspx

Developing applications that use system types and collections

 [assembly: System.Runtime.CompilerServices.TypeForwardedTo(typeof(TheType))]

Embedding configuration, diagnostic, management, and installation features into a .NET Framework application

 <connectionStrings>
   <add name="pubs" 
       connectionString="localhost;integrated 
       security=true;database=pubs;" />
 </connectionStrings> 

and

 <%@ Import Namespace="System.Configuration" %>
 <%@ Import Namespace="System.Web.Configuration" %>


 <script runat="server" language="C#" >
  public void Page_Load(object source, EventArgs e)
  {
   Response.Write("Connection String:" + 
      ConfigurationManager.ConnectionStrings["pubs"].ConnectionString);
  }
 </script>
    • So you can store multiple connection strings in one web.config
    • And access them (production, dev, testing, etc.) programmatically
    • Connection strings can be encrypted using the ProtectSection and UnProtectSection methods
    • The connection string section unencrypted looks like this:
 <connectionStrings>
   <add name="pubs" 
      connectionString="localhost;integrated 
      security=true;database=pubs;" />
 </connectionStrings> 
    • The connection string section encrypted looks like this:
 <protectedData>
   <protectedDataSections>
    <add name="connectionStrings" 
      provider="DataProtectionConfigurationProvider"
      inheritedByChildren="False"/>
   </protectedDataSections>
 </protectedData>


 <connectionStrings>
    <EncryptedData>
      <CipherData>
        <CipherValue>AQA------------
           FnvpHa1iy4Oww=</CipherValue>
      </CipherData>
    </EncryptedData>
 </connectionStrings> 
    • So connection strings no longer need to be kept in plain-text on the web server

Implementing serialization and input/output functionality in a .NET Framework application

Improving the security of .NET Framework applications by using the .NET Framework 2.0 security features

Implementing interoperability, reflection, and mailing functionality in a .NET Framework application

Implementing globalization, drawing, and text manipulation functionality in a .NET Framework application

Section 2 - Core Web Application Development (30 Questions)

Although this section does not have a name, I have decided to call in Core Web Application Development. That is because it deals with all of the fundamental topics of web development. Existing MCAD's who have experience in web development should already know most of these topics. I have tried to highlight the NEW features of .NET 2.0 when they are mentioned.

Creating and Programming a Web Application

  • Add and configure Web server controls (see what's changed here http://www.mikepope.com/blog/DisplayBlog.aspx?permalink=1039&count=no )
    • The Button control has an OnClientClick event that you can use to add JavaScript code
    • Also UseSubmitBehavior which makes the button act like an HTML Submit button
    • Also a PostBackUrl property which says which page should be loaded to handle a postback
    • Changes to the calendar control
    • New FileUpload control, identical to the HtmlInputFile control
    • New ImageMap control, allows you to do postbacks on areas on an image
    • Skinning
    • Data binding can now be appended, so you can have one or two manual items and then the stuff from the database (cool)
    • Textbox controls have support for AutoComplete
  • Configure settings for a Web application
    • Web config can be modified using new Configuration classes (see Section 1 above)
    • The web config can be edited using a wizard interface called the Web Site Administration Tool. You can define security, application or provider settings.
  • Program a Web application
    • Response.Redirect
    • Server.Transfer vs. PostBackUrl
    • Page Two can access the page that sent it using PreviousPage object

Integrating Data in a Web Application by Using ADO.NET, XML, and Data-Bound Controls

  • Implement data-bound controls
    • All controls can be data bound. New Menu and SiteMap controls as well.
  • Manage connections and transactions of databases
    • New class, System.Transaction
    • Transactions without using serviced components
    • Implicit and explicit transactions
    • An implicit transaction simply encloses sql calls inside a using code block
 void btnImplicitLocal_Click(object sender, EventArgs e)
 {
    // Create the TransactionScope
    using (TransactionScope oTranScope = new TransactionScope())
    {
        using (SqlConnection oCn1 = new SqlConnection(this.sCn1))
        {
            SqlCommand oCmd = new SqlCommand(this.sSQL, oCn1);
            oCn1.Open();
            oCmd.ExecuteNonQuery();
            oCn1.Close();
        }


        // Tell the transaction scope that the transaction is in a
        // consistent state and can be committed
        oTranScope.Consistent = true; // oTranScope.Complete() in beta 2


        // The following bracket completes, commits, and disposes 
        // the transaction
    }
 }
    • Remember these?
      • Required - If within a currently active transaction scope, this transaction scope will join it. Otherwise it will create its own transaction scope.
      • RequiresNew - This transaction will create its own transaction scope.
      • Supports - If within a currently active transaction scope, this transaction scope will join it. Otherwise no transaction scope will be created.
      • NotSupported - No transaction scope will be created.
    • SQL Server 2005 transactions are supported locally
    • As soon as any other database is involved, is it a distributed transaction
    • So a SQL statement executed again SQL 2005 and Oracle are in one transaction, where failure of one causes rollback in the other
  • Create, delete, and edit data in a connected environment

Creating Custom Web Controls

  • Create a composite Web application control
    • New Item -> Web User Control
    • An existing web page can be converted to a control, cool
    • LoadControl and add to Controls collection to programmatically load a control

Tracing, Configuring, and Deploying Applications

Note, a good overview of this section here ( http://msdn2.microsoft.com/en-us/library/baf8bxh4(VS.80).aspx )

  • NEW Copy a Web application to a target server by using the Copy Web tool (see http://msdn2.microsoft.com/en-us/library/1cc82atw.aspx )
    • The Copy Web Tool allows you to copy your website from your machine to another machine. It can connect to a remote machine through http (using Frontpage extensions), FTP. It can also deploy to your local IIS machine, or your file system. It does a bi directional sync, meaning changes from your machine are uploaded to the server and changes from the server are downloaded to your machine.
  • NEW Precompile a Web application by using the Publish Web tool (see http://msdn2.microsoft.com/en-us/library/1y1404zt.aspx and http://msdn2.microsoft.com/en-us/library/377y0s6t(VS.80).aspx )
    • The Publish web tool allows you to precompile your website. You can then deploy the website without the accompanying source code. You publish to either a local file path, ftp or http. If you select the "Allow this precompiled site to be updateable" option, the HTML is not compiled into the assembly. If you select the "Use fixed naming and single page assemblies" option, you will get an assembly for each page. Skins and Themes are still compiled into a single assembly. The last option available to you is whether or not you want to strongly name the assemblies.
  • Optimize and troubleshoot a Web application

Customizing and Personalizing a Web Application

Note, the ASP.NET videos cover this nicely. http://weblogs.asp.net/scottgu/archive/2006/02/26/439088.aspx

Implementing Authentication and Authorization

Note, the ASP.NET videos cover this nicely. http://weblogs.asp.net/scottgu/archive/2006/02/26/439088.aspx

  • Establish a user's identity by using forms authentication
  • Use authorization to establish the rights of an authenticated user
  • Use login controls to control access to a Web application

Creating ASP.NET Mobile Web Applications

  • Create a mobile Web application project (see http://msdn2.microsoft.com/en-us/library/ms178619(VS.80).aspx )
  • Use device-specific rendering to display controls on a variety of devices
  • Use adaptive rendering to modify the appearance of Web server controls
  • Use the mobile Web controls to display content on a device

Section 3 - Application Development Advanced Topics (30 Questions)

Although this section does not have a name, I have decided to call in Application Development Advanced Topics. That is because it deals with (d'oh) advanced topics of development. This is a strange section. Some of it is hard to really test (ie: perform a code review) and others are sort of fundamental to being a developer (ie: evaluate the design of a database).

There is probably not much you can do to study for this section. If you are a professional developer, and have been so for many years, you will likely pass this part easily.

Envisioning and Designing an Application

  • Evaluate the technical feasibility of an application design concept
  • Evaluate the technical specifications for an application to ensure that the business requirements are met
  • Evaluate the design of a database
  • Evaluate the logical design of an application
  • Evaluate the physical design of an application. Considerations include the design of the project structure, the number of files, the number of assemblies, and the location of these resources on the server.

Designing and Developing a User Interface

  • Choose an appropriate layout for the visual interface
  • Evaluate a strategy for implementing a common layout throughout the UI.
  • Choose an appropriate control based on design specifications.
  • Choose an appropriate data validation method at the UI layer.
  • Choose appropriate user assistance and application status feedback techniques.

Designing and Developing a Component

  • Establish the required characteristics of a component.
  • Create the high-level design of a component.
  • Develop the public API of a component.
  • Develop the features of a component.
  • Develop an exception handling mechanism.
  • Develop the data access and data handling features of a component.

Designing and Developing an Application Framework

  • Consume a reusable software component.
  • Choose an appropriate exception handling mechanism.
  • Choose an appropriate implementation approach for the application design logic.
  • Choose an appropriate event logging method for the application.
  • Evaluate the application configuration architecture.

Testing and Stabilizing an Application

  • Perform a code review.
  • Evaluate the testing strategy.
  • Design a unit test.
  • Perform integration testing.
  • Resolve a bug.

Deploying and Supporting an Application

  • Evaluate the performance of an application based on the performance analysis strategy.
  • Analyze the data received when monitoring an application.
  • Evaluate the deployment plan.
  • Validate the production configuration environment. Considerations include load balancing, Web farms, and Web gardens.

User Reviews

From http://blogs.clearscreen.com/migs/archive/2006/02/24/2849.aspx :

 I just took this exam today and it seemed to have a pretty good level. 
 The exam was divided in three section of 30 questions each. Once you  
 finish a section you can't go back and change your answers, but you can 
 go back to add comments to them.


 The first section was specific to web applications and it has a bunch of 
 question with mobile pages, mobile devices, web forms and web controls as 
 the main topics. The second part of the exam looked the hardest one, it 
 was related to framework and types with security attributes, xml 
 serialization attributes, class design and generics in its topics. The third 
 part, the one I was really scared of, was the architecture one and it was 
 really easy to pass, lot of logical questions about designing solutions 
 and best practices.


 There is one thing I still have in mind, that really impressed me 
 positively. I got some questions talking about unit testing, code 
 coverage and integration tests ... :-D


 As with all the beta exams, I'll have to wait to get my results a 
 couple of weeks. While I wait, I'll take more exams.... Next stop: 
 71-552 Upgrade from MCAD to MCPD Windows Developer; next Monday morning.
.

A Study Guide for the MCSD for .NET

If you're new to Wiki, read OneMinuteWiki or VisitorWelcome.

Recent Topics

  • MCPDWebUpgradeExam