clip_image002

After launching the new Microsoft Press Exam Ref series in October, we’re happy to announce that the second Exam Ref -- MCPD 70-518 Exam Ref: Designing and Developing Windows® Applications Using Microsoft® .NET Framework 4 (ISBN 9780735657236; 336 pages) -- shipped to the printer this week. Congratulations to authors Tony Northrup and Matthew A. Stoecker!

The Exam Ref series is designed for experienced, MCTS-certified professionals ready to advance their status. Each book focuses on the critical-thinking and decision-making acumen needed for success at the MCPD level. This title provides a comprehensive and concise way of preparing for the MCPD 70-518 exam, the Pro-level exam required for the MCPD: Windows Developer 4 certification.

Each Exam Ref is organized by exam objectives for fast, efficient study, and includes objective review questions, along with the new Thought Experiment element. Thought Experiments help reinforce the design-level thinking required to master the exam and the job role.

Here’s an excerpt from the book’s introduction, along with a set of objective review questions to give you a preview:

Introduction

Most development books take a very low-level approach, teaching you how to use individual classes and accomplish fine-grained tasks. Like the Microsoft 70-518 certification exam, this book takes a high-level approach, building on your knowledge of lower-level Microsoft Windows application development and extending it into application design. Both the exam and the book are so high-level that there is very little coding involved. In fact, most of the code samples this book provides simply illustrate higher-level concepts.

The 70-518 certification exam tests your knowledge of designing and developing Windows applications. By passing this exam, you will prove that you have the knowledge and experience to design complex, multi-tier Windows applications using Microsoft technologies. This book will review every concept described in the exam objective domains, such as the following:

· Designing the layers of a solution

· Designing the Presentation layer

· Designing the Data access layer

· Planning a solution deployment

· Designing for stability and maintenance

This book covers every exam objective, but it does not necessarily cover every exam question. Microsoft regularly adds new questions to the exam, making it impossible for this (or any) book to provide every answer. Instead, this book is designed to supplement your relevant independent study and real-world experience. If you encounter a topic in this book that you do not feel completely comfortable with, you should visit any links described in the text and spend several hours researching the topic further using MSDN, blogs, and support forums. Ideally, you should also create a practical application with the technology to gain hands-on experience.

Objective 1.1 Review: Design a Loosely Coupled Layered Architecture

Answer the following questions to test your knowledge of the information in this objective. You can find the answers to these questions and explanations of why each answer choice is correct or incorrect in the “Answers” section at the end of this chapter.

1. You are planning the deployment of a new application using the traditional three-tier architecture. Currently, your solution consists of a database server, a web service, a WPF client, and an ASP.NET client. The WPF client and the ASP.NET client communicate with the web service, which in turn communicates with the database server. While creating an architecture diagram, which component would you place within the Business Logic layer?

A. The database server

B. The web service

C. The WPF client

D. The ASP.NET client

2. You are migrating a web service to a new architecture. Currently, the web service is contained entirely within a single assembly, and it provides a single interface for all functions. In the next-generation version of the application, the web service will provide SoC by dividing different functions into three different web services. For backward compatibility, you would like to create a routing service that accepts requests from clients designed for the current version of the application and routes the requests to the appropriate next-generation web service. You would like to minimize software licensing costs. Which approach do you recommend?

A. WCF context-based routing

B. WCF content-based routing

C. BizTalk Server

D. SQL Server

3. You are designing a loosely coupled application. Which of the following is consistent with the design of a service-oriented architecture?

A. Use WebHttpBinding for communications between layers.

B. Use NetNamedPipesBinding for communications between layers.

C. Two services are build using a single Visual Studio solution, with shared classed deployed to the Global Assembly Cache (GAC).

D. A class in the data model makes calls to a standards-based web service to populate property values.

Answers

Objective 1.1: Review

1. Correct Answer: B

A. Incorrect: The database server is part of the Data layer.

B. Correct: In this application, the web service would need to perform all processing. Therefore, it would be placed within the Business Logic layer.

C. Incorrect: The WPF client would be part of the Presentation layer.

D. Incorrect: The ASP.NET client would be part of the Presentation layer.

2. Correct Answer: B

A. Incorrect: Context-based routing routes requests based on IP address and port number. In this case, you will need to look within the message to determine which of the three new services should receive the request. Therefore, you need to use content-based routing.

B. Correct: If you create a WCF content-based router, you can receive requests using the existing application’s interface. Depending on the content of the request, such as the specific method being called, you can route the request to a back-end web service.

C. Incorrect: BizTalk Server is capable of this type of routing. However, using BizTalk Server would incur software licensing costs.

D. Incorrect: SQL Server does not provide web services routing.

3. Correct Answer: A

A. Correct: WebHttpBinding is based on open standards, and as such is perfect for a loosely coupled application because you would be able to replace the client or server with code written using a different development environment.

B. Incorrect: NetNamedPipesBinding is used for communications between .NET Framework applications only. A loosely coupled application should rely on open standards.

C. Incorrect: The WPF client would be part of the Presentation layer.

D. Incorrect: The first tenet of SOA is that boundaries are explicit. Because calls to other services can be expensive, they should be deliberate. By making calls directly from a data model property, developers using the data model might not be aware that they are making web service calls, and the web service calls might not be performed efficiently.