Monday, May 16, 2005

 

Some DotNet interview questions - 3

I.

From unknown website

QUESTION NO: 1
You create a user control named Address that is defined in a file named Address.ascx. Address displays address fields in an HTML table. Some container pages might contain more than one instance of the Address user control. For example, a page might contain a shipping address and a billing address. You add a public property named TKCaption to the Address user control. The caption property will be used to distinguish the different instances. You want the caption to be displayed in the first element of the table of address fields.
You need to add code to the element of the table to display the caption. Which code should you use?

A.
B. TKCaption
C. document.write(TKCaption);
D. TKCaption

Answer: A
Explanation: TKCaption is a public property contained on the Web server. We reference it with the element
Incorrect Answers
B, C: Scrips are not called for. We just want to display a property.
D: To access the public property we must use an element.

QUESTION NO: 2
You are creating an ASP.NET application called TestKApp that will be used by companies to quickly create information portals customized to their business. TestKApp stored commonly used text strings in application variables for use by the page in your application.
You need your application to initialize these text strings only when the first user accesses the application. What should you do?

A. Add code to the Application_OnStart event handler in the Global.asax file to set the values of the text strings.
B. Add code to the Application_BeginRequest event handler in the Global.asax file to set the values of the text strings.
C. Add code to the Session_OnStart event handler in the Global.asax file to set the values of the text strings.
D. Include code in the Page.Load event handler for the default application page that sets the values if the text strings when the IsPostback property of the Page object is False.
E. Include code in the Page.Load event handler for the default application page that sets the values of the text strings when the IsNewSession property of the Session object is set to true.

Answer: A
Explanation: The OnStart event only occurs when the first user starts the application.
Reference: .NET Framework Class Library, ServiceBase Class [C#]
Incorrect Answers
B: The HttpApplication.BeginRequest event occurs as the first event in the HTTP pipeline chain of execution when ASP.NET responds to a request.
C: This would set the values every time a new session is started.
D, E: We should use the OnStart event handler of the application, not the Page.Load event handler.

QUESTION NO: 3
You are creating an ASP.NET application for Gsoft’s human resources (HR) department.
Users in the HR department will use the application to process new employees. The application automates several activities that include creating a network login account, creating an e-mail account, registering for insurance benefits, and other activities.
During integration testing of your application, you need to verify that the individual activities run successfully and in the proper order.
Each page in your application includes the following elements in the Page directive:
Debug=”True”
Trace=”True”
You want each page to provide execution information in the Web browser immediately after the page’s normal display output. You need to add instrumentation to the code in your pages to accomplish this goal.
Which statement should you use?

A. Trace.Write();
B. Debug.Print();
C. System.Diagnostics.Trace.Write();
D. System.Diagnostics.Debug.Write();
E. System.Diagnostics.Debugger.Log();

Answer: A
Explanation: We simply use the Trace.Write method.
Incorrect Answers
B, D, E: As we want to test the product during integration we need to trace the application, not only debug it.

QUESTION NO: 4
You ASP.NET application manages order entry data by using a DataSet object named
orderEntry. The orderEntry object includes twp DataTable objects named orderNames and
OrderDetails. A ForeignKeyConstraint object named orderDetailsKey is defined between the two DataTable objects.
You attempt to delete a row in orderNames while there are related rows in OrderDetails, and an exception is generated.
What is the most likely cause of the problem?

A. The current value of orderDetailsKey.DeleteRule is Rule.Cascade.
B. The current value of orderDetailsKey.DeleteRule is Rule.SetNull.
C. The current value of orderDetailsKey.DeleteRule is Rule.SetDefault.
D. The current value of orderDetailsKey.DeleteRule is Rule.None.

Answer: D
Explanation: The rule enumeration indicates the action that occurs when a ForeignKeyConstraint is enforced. None specifies that no action will occur, but exceptions are generated. This is what has occurred in this scenario.
Reference: .NET Framework Class Library, Rule Enumeration [C#]
Incorrect Answers
A: Cascade specifies that all rows containing that value are also deleted.
B: SetNull specifies that values in all child columns are set to null values.
C: SetDefault specifies that all child columns be set to the default value for the column.

QUESTION NO: 5
You create an ASP.NET application named TKProject. You write code to specify the
namespace structure of TKProject by including all class declarations within a namespace named TKNamespace.
You want to compile TKProject so that the fully qualifies namespace of each class is
TKNamespace. You want to prevent the fully qualifies namespace of each class from being TKProject.TKNamespace.
You need to make changes in the Common Properties folder of the Property Pages dialog box for TKProject.
What should you do?

A. Change the value of the AssemblyName property to TKNamespace.
B. Clear the value of the AssemblyName property and leave it blank.
C. Change the value of the RootNamespace property to TKNamespace.
D. Clear the value of the RootNamespace property and leave it blank.

Answer: D
Explanation: Returns or sets the namespace for items added through the Add New Item Dialog Box. This property provides the same functionality as the DefaultNamespace Property, and using the DefaultNamespace property is preferred for setting the namespace of new project items. We should clear this property as we want to prevent the fully qualifies namespace of each class from being TKProject.TKNamespace.
Reference: Visual Basic and Visual C# Project Extensibility, RootNamespace Property [C#]
Incorrect Answers
A, B: The AssemblyName property is not directly related to the fully qualified namespace class.
C: We should clear the RootNamespace property as we want to prevent the fully qualifies namespace of each class from being TKProject.TKNamespace.

QUESTION NO: 6
You are creating an ASP.NET accounting application that stores and manipulates data in a Microsoft SQL Server database named GsoftSrv. One of the pages in the application will be used for performing month-end operations to calculate the balance of all accounts.
When a user clicks a button on the page, you want your code to run several stored procedures to calculate the month-end balances. These procedures must all succeed before the calculated balances can be stored in the database. If any of the procedures fail, then you do not want to store any of the month-end calculated balances. While the procedures are running, you do not want any users to be able to edit, add, or delete data in the tables affected by the procedures.
What should you do?

A. Create a class derived from System.EnterpriseServices.ServicesComponent to run the stored procedures.
Annotate the class by using a TransactionAttribute type of attribute.
Set the Value property of the attribute to TransactionOption.RequiresNew.
B. Create a master stored procedure.
Use this master stored procedure to call the other stored procedures that perform the monthend
operations.
Add WITH REPEATABLEREAD to the master stored procedure.
C. Use structured exception handling to catch a SqlException if one of the stored procedures fails.
Use the Procedure property of the SqlException to identify which stored procedure generated the exception, and call a stored procedure to reserve the previous calculations.
D. Set the IsolationLevel property of a SqlTransaction object to IsolationLevel.Serializable.
Assign the SqlTransaction object to the Transaction property of the SqlCommand object.
Use a SqlCommand object to run the stored procedures.
Answer: D
Explanation: We should use an Transaction to ensure that either all stored procedures will succeed or if one stored procedure fails, the whole transaction will be backtracked. Furthermore, in order to protect the data in tables during the transaction, we should use the highest transaction isolation level of Serializable. We use a SQLCommand object to run the stored procedure. We set the Transaction
property of the SqlCommand to the SqlTransaction object we created.
Note: The transactionIsolation level of Serializable places a range lock on the DataSet, preventing other users from updating or inserting rows into the dataset until the transaction is complete.
Reference: .NET Framework Class Library, IsolationLevel Enumeration [C#]
Incorrect Answers
A, B: This is not the way to set up a transaction.
C: Exception handling would be extremely complicated to meet the requirement of the scenario.

QUESTION NO: 7
You are a Web developer for an online research service Gsoft Research Inc. You are
creating an ASP.NET application that will display research results to users of the Gsoft Web site.
You use a DataGrid control to display a list of research questions and the number of responses received for each question. You want to modify the control so that the total number of responses received is displayed in the footer of the grid. You want to perform this task with the minimum amount of development effort.
What should you do?
A. Override the OnPreRender event and display the total when the footer row is created.
B. Override the OnItemCreated event and display the total when the footer row is created,
C. Override the OnItemDataBound event and display the total when the footer row is bound.
D. Override the OnLayout event and display the total in the footer row.
Answer: C
Explanation: The ItemDataBound event is raised after an item is data bound to the DataGrid control. This event provides you with the last opportunity to access the data item before it is displayed on the client. After this event is raised, the data item is nulled out and no longer available.
Reference: .NET Framework Class Library, DataGrid.ItemDataBound Event [C#]
Incorrect Answers
A: The OnPreRender method notifies the server control to perform any necessary prerendering steps prior to saving view state and rendering content.
B: The ItemCreated event is raised when an item in the DataGrid control is created, both during round-trips and at the time data is bound to the control.
D: The OnLayout Method raises the Layout event that repositions controls and updates scroll bars.

QUESTION NO: 8
You are creating an ASP.NET page that contains a Label control named specialsLabel. A text file named Specials.txt contains a list of products. Specials.txt is located in the application directory. Each product named listed in Specials.txt is followed by a carriage return.
You need to display a list of featured products in specialsLabel. You need to retrieve the lost of products from Specials.txt.
Which code segment should you use?

A. System.IO.StreamReader reader =
System.IO.File.OpenText(
Server.MapPath(“Specials.txt”));
string inout = “”;
while (input !=null)
{
specialsLabel.Text =
string.Format(“
“,
specialsLabel.Text, input);
input = reader.BaseStream.ToString();
}
reader.Close();
B. System.IO.StreamReader reader =
System.IO.File.OpenText(
Server.MapPath(“Specials.txt”));
string inout = “”;
input = reader.ReadLine();
while (input != null)
{
specialsLabel.Text =
string.Format(“
“,
specialsLabel.Text, input);
input = reader.ReadLine();
}
reader.Close()
C. System.IO.Stream strm = System.IO.File.OpenRead(
Server.MapPath(“Specials.txt”));
byte[] b 0 new byte[1024];
string input;
input = strm.Read(b, 0, b.Length).ToString();
specialsLabel.Text = input
strm.Close();
D. System.IO.Stream strm = System.IO.File.OpenRead(
Server.MapPath(“Specials.txt”));
string input;
input = strm.ToString();
specialsLabel.Text = input;
strm.Close();

Answer: B
Explanation: We create a StreamReader. We then read one line at a time and display each line appropriately, until the stream is empty.
Reference: .NET Framework Developer's Guide, Reading Text from a File [C#]
Incorrect Answers
A: The StreamReader.BaseStream property Returns the underlying stream. We cannot use the ToString method on a stream. The following command is incorrect:
input = reader.BaseStream.ToString()
C: We should read a line a time, not a byte.
D: We cannot use the ToString method on a FileStream.

QUESTION NO: 9
You create an ASP.NET application that will run on Gsoft’s Internet Web site. Your
application contains 100 Web pages. You want to configure your application so that it will display customized error messages to users when an HTTP code error occurs.
You want to log the error when an ASP.NET exception occurs. You want to accomplish these goals with the minimum amount of development effort.
Which two actions should you take? (Each correct answer presents part of the solution. Choose two)

A. Create an Application_Error procedure in the Global.asax file for your application to handle ASP.NET code errors.
B. Create an applicationError section in the Web.config file for your application to handle ASP.NET code errors.
C. Create a CustomErrors event in the Global.asax file for your application to handle HTTP errors.
D. Create a CustomErrors section in the Web.config file for your application to handle HTTP errors.
E. Add the Page directive to each page in the application to handle ASP.NET code errors.
F. Add the Page directive to each page in the application to handle HTTP errors.

Answer: A, D
Explanation:
A: Any public event raised by the HttpApplication class is supported using the syntax
Application_EventName. For example, a handler for the Error event can be declared protected void Application_Error(Object sender, EventArgs e).
D: The element, which is used in the Web.config file, provides information
about custom error messages for an ASP.NET application.
Reference:
.NET Framework Developer's Guide, Handling Public Events
.NET Framework General Reference, Element
Incorrect Answers
B: There is no such thing as a applicationError section in the Web.config file.
C: There is no such thing as CustomErros event in the Global.asax file.
E, F: It is not necessary to add a Page Directive to each page.

QUESTION NO: 10
Gsoft is developing an ASP.NET application for producing comparative insurance quotes
from multiple insurance carries. Gsoft wants the application to provide quotes to a user after the user answers questions about individual insurance needs. You deploy a copy of the application to Gsoft’s testing environment so that you can perform unit testing.
The Machine.config file on the testing server contains the following element:

The Web.config file for your application contains the following element:

When you run the application, you find that not all insurance carries are being displayed on the quote result page. You attempt to view the trace output information for the quote results page by browsing to the trace.axd URL for your application. No trace information is shown.
You want to be able to examine trace output information by using trace.axd. What are two possible ways to achieve this goal? (Each correct answer presents a complete solution. Choose two)
A. Modify the element in the Machine.config file as follows:

B. Modify the element in the Machine.config file as follows:

C. Modify the element in the Web.config file as follows:

D. Modify the element in the Web.config file as follows:

E. Modify the Page directive for the quote results page so that it contains the following entry:
Trace=”true”
Answer: C, E
Explanation:
C: As the Web.config settings override the Machine.config settings we can enable tracing by setting the enabled and the pageoutput attributes to true and the Web.config file.
E: We only need to enable tracing for the quote results page. We can control whether tracing is enabled or disabled for a page with the Trace attribute of the @ Page directive, i.e.
Trace=”true”. Tracing is disabled by default.
Note: The enabled attribute of the Trace element specifies whether trace output is rendered at the end of each page.
The pageOutput attribute of the Trace element specifies whether trace output is rendered at the end of each page.
Reference:
.NET Framework General Reference, Element
.NET Framework Developer's Guide, Enabling Tracing for a Page
.NET Framework Developer's Guide, Enabling Application-Level Tracing
Incorrect Answers
A, B: The configuration in the Web.config file overrides the configuration in the Machine.config file. We must modify the Web.config file or configure tracing on a page separately.
D: To enable application level tracing output that can be read by using trace.axd we need to set the pageOutput attribute to true.

see http://msdn.microsoft.com/library/default.asp?url=/library/en-us/cpguide/html/cpconASPNETConfiguration.asp

QUESTION NO: 11
You create an ASP.NET application and deploy it on a test server named GsoftSrv. The
application consists of a main page that links to 30 other pages containing ASP.NET code.
You want to accomplish the following goals:
• Enable tracing on all the pages in the application except the main page.
• Display trace output for up to 40 requests.
• Ensure that trace output is appended to the bottom of each of the pages that will
contain trace output.
• Ensure that any configuration changes affect only this application.
You need to accomplish these goals with the minimum amount of development effort.
Which three actions should you take? (Each correct answer presents part of the solution. Choose three)
A. Add the following element to the Web.config file:

B. Add the following attribute to the Trace element of the application’s Web.config file:
requestLimit=40
C. Add the following attribute to the Trace element of the application’s Machine.config file:
requestLimit=40
D. Set the Trace attribute of the Page directive to true for each page except the main page.
E. Set the Trace attribute of the Page directive to false for the main page.
F. Set the TraceMode attribute of the Page directive to SortByTime for the main page.

Answer: A, B, E
Explanation:
A: You can enable tracing for an entire application in the web.config file in the application's root directory. We should use the trace element and set the enabled attribute to true.
Note: If the pageOutput attribute is set to true trace information is displayed both on an application's pages and in the .axd trace utility,
B: We should also set the RequestLimit attribute of TraceElement, the number of trace requests to store on the server, to 40, since the default value is 10.
E: When you enable tracing for an entire application in the web.config file (A), trace information is gathered and processed for each page in that application. To disable tracing for a particular page in the application, set the Trace attribute in that page's @ Page directive to false.
Reference: .NET Framework Developer's Guide, Enabling Application-Level Tracing
Incorrect Answers
C: A Machine.config file is the base configuration for all .NET assemblies running on the server. It is not related to a single application.
D: We must disable tracing for the main page.
F: The TraceMode attribute is used to specify the order in which you want your trace messages to appear. However, there is no such requirement in this scenario.

QUESTION NO: 12
You are a Web developer for Gsoft. You create an ASP.NET application that accesses sales and marketing data. The data is stored in a Microsoft SQL Server 2000 database on a server named TestK01.
The company purchases a factory automation software application. The application is installed on TestK01, where it creates a second instance of SQL Server 2000 named Factory and a database named FactoryDB. You connect to FactoryDB by using Windows Integrated authentication.
You want to add a page to your ASP.NET application to display inventory data from
FactoryDB. You use a SqlConnection object to connect to the database. You need to create a connection string to FactoryDB in the instance of SQL Server named Factory on TestK01.
Which string should you use?

A. “Server=TestK01;Data Source=Factory; Initial Catalog=FactoryDB;Integrated Security=SSPI”
B. “Server=TestK01;Data Source=Factory; Database=FactoryDB; Integrated Security=SSP1”
C. “Data Source=TestK01\Factory;Initial Category=Factory;
Integrated Security=SSP1”
D. “Data Source=TestK01\Factory;Database=FactoryDB; Integrated Security=SSP1”

Answer: D
Explanation: The Data Source attribute of the connection string contains the name, instance or network address of the instance of SQL Server to which to connect. In this scenario we are to connect to the Factory Instance on TestK01 so we use TestK01\Factory as data source.
To specify the database we should either use the Database or the Initial Catalog attribute. Here we use Database=FactoryDB.
Note: The SQL Server .NET Data Provider provides connectivity to Microsoft SQL Server version 7.0 or later using the SqlConnection object. The connection string includes the source database name, and other parameters needed to establish the initial connection.
Reference:
.NET Framework Class Library, SqlConnection.ConnectionString Property [C#]
Incorrect Answers
A, B: There is no Server attribute in the connection string. Instead we should use the Data Source attribute to specify the server and the instance.
C: There is no Initial Category attribute in the connection string. We can use Database or the Initial Catalog attribute to specify the database.

QUESTION NO: 13
You create an ASP.NET application to provide online order processing to Gsoft customers. A page named ShippingInformation.aspx contains a Web Form with controls for collecting shipping location information. The Web Form contains the following elements:
• Four TextBox controls for entry of name, street address, city, and postal code.
• A DropDownList control that consists of the full names of 150 countries.
• A Button control named shipItButton.
The Click event handler for shipItButton is located in the code-behind file for
ShippingInformation.aspx. None of the other controls on the Web Form define server-side event handlers.
The Click event handler for ShipItButton redirects the user to a page named
ShippingConfirmation.aspx. The ShippingConfirmation.aspx page provides the confirmation status of the shipping request submission to the user.
Users who access the application by using dial-up connections report that
ShippingInformation.aspx processes very slow after the user clicks the shipItButton. Users on high-bandwidth network connections do not report the same issue.
You need to decrease the delay experienced by the dial-up users. What should you do?
A. Add the following attribute to the Page directive for ShippingInformation.aspx:
EnableViewState=”False”
B. Add the following attribute to the Page directive for ShippingInformation.aspx:
SmartNavigation=”True”
C. Add the following attribute to the OutputCache directive for ShippingInformation.aspx:
Location=”server”
D. Add the following attribute to the OutputCache directive for ShippingInformation.aspx.
Location=”client”

Answer: A
Explanation: The Page.EnableViewState property gets or sets a value indicating whether the page maintains its view state, and the view state of any server controls it contains, when the current page request ends. You can use the ViewState property to save your values independent of control state between round trips to the server. The ViewState property is stored in the page in a hidden form field. However, this introduces higher network load when the page is redisplayed.
Reference: .NET Framework Class Library, Page.EnableViewState Property [C#]
Incorrect Answers
B: The SmartNavigation property does not affect problems of this scenario.
C: Server side caching would not decrease network traffic.
Note: The OutputCache directive declaratively controls the output caching policies of an ASP.NET page or a user control contained in a page.
D: Client side caching would not so useful in this scenario.

QUESTION NO: 14
You are creating an ASP.NET application to track Gsoft sales orders. The application uses an ADO.NET DataSet object that contains two DataTable objects. One table is named Orders, and the other table is named OrderDetails. The application displays data from the Orders table in a list box. You want the order details for an order to be displayed in a grid when a user selects the order in the list box. You want to modify these objects to enable your code to find all the order details for the selected order.
What should you do?
A. Add a DataRelation object to the Relations collection of the DataSet object.
B. Use the DataSet.Merge method to connect the Orders table and the OrderDetails table to each other.
C. Add a ForeignKeyConstraint to the OrderDetails table.
D. Add a keyref constraint to the DataSet schema.

Answer: A
Explanation: In order to enable the DataGrid to display from multiple tables we need to relate the tables with DataRelation.
Reference: Visual Basic and Visual C# Concepts, Introduction to the Windows Forms DataGrid Control
Incorrect Answers
B: We don’t want to merge the two datasets into a single dataset.
C: A foreignKeyConstraint represents an action restriction enforced on a set of columns in a primary key/foreign key relationship when a value or row is either deleted or updated. However, a foreign key constraint does not create a relation between the tables.
D: We need to define a relation not a constraint.

QUESTION NO: 15
You ASP.NET application manages order entry data by using a DataSet object named
TKorderEntry. The TKorderEntry object includes two DataTable objects named orderNames and OrderDetails. A ForeignKeyConstraint object named orderDetailsKey is defined between the two DataTable objects.
You attempt to delete a row in orderNames while there are related rows in OrderDetails, and an exception is generated.
What is the most likely cause of the problem?
A. The current value of OrderDetails.KeyDeleteRule is Rule.Cascade.
B. The current value of OrderDetails.KeyDeleteRule is Rule.SetNull.
C. The current value of OrderDetails.KeyDeleteRule is Rule.SetDefault.
D. The current value of OrderDetails.KeyDeleteRule is Rule.None.

Answer: D
Explanation: The rule enumeration indicates the action that occurs when a ForeignKeyConstraint is enforced. None specifies that no action will occur, but exceptions are generated. This is what has occurred in this scenario.
Reference: .NET Framework Class Library, Rule Enumeration [C#]
Incorrect Answers
A: Cascade specifies that all rows containing that value are also deleted.
B: SetNull specifies that values in all child columns are set to null values.
C: SetDefault specifies that all child columns be set to the default value for the column.

QUESTION NO: 16
You are creating an ASP.NET application for Gsoft Your application will call an XML
Web service run by Wide World Importers. The XML Web service will return an ADO.NET
DataSet object containing a list of companies that purchase wine.
You need to make the XML Web service available to your application.
What should you do?
A. On the .NET tab of the Reference dialog box, select System.Web.Services.dll.
B. In the Web References dialog box, type the address of the XML Web service.
C. Add a using statement to your Global.asax.cs file, and specify the address of the XML Web service.
D. Write an event handler in the Global.asax.cs file to import the .wsdl and .disco files associated with the XML Web service.

Answer: B
Explanation: Web references differ from traditional references and components in that they refer to XML Web services published on either a local intranet or the Internet.
Procedure to add a Web reference to a project
1. In Solution Explorer, select a project that supports adding Web references.
2. On the Project menu, choose Add Web Reference.
3. In the Add Web Reference dialog box, type the URL for the XML Web service in the
Address text box,
4. Verify that the items in the Available References box are the items you want to reference in your project, and then choose Add Reference.
5. In Solution Explorer, expand the Web References folder to note the namespace for the Web reference classes that are available to the items in your project.
Reference: Visual Studio, Adding and Removing Web References

QUESTION NO: 17
You create an ASP.NET page that allows a user to enter a requested delivery date in a TextBox control named requestTKDate. The date must be no earlier than two business days after the order date, and no later that 60 business days after the order date. You add a CustomValidator control to your page. In the Properties window, you set the ControlToValidate property to requestTKDate.
You need to ensure that the date entered in the requestDate TextBox control falls within the acceptable range of values. In addition, you need to minimize the number of round trips to the server.
What should you do?

A. Set the AutoPostBack property of requestDate to False.
Write code in the ServerValidate event handler to validate the date.
B. Set the AutoPostBack property of requestDate to True.
Write code in the ServerValidate event handler to validate the date.
C. Set the AutoPostBack property of requestDate to False.
Set the ClientValidationFunction property to the name of a script function contained in the HTML page that is sent to the browser.
D. Set the AutoPostBack property of requestDate to True.
Set the ClientValidationFunction property to the name of a script function contained in the HTML page that is sent to the browser.

Answer: C
Explanation: Set CustomValidator.ClientValidationFunction property to the name of the function that performs the client-side validation. Because the client validation function runs on the target browser, the function must be written using a scripting language supported by the browser, such as JScript or VBScript.
The AutoPostBack property gets or sets a value indicating whether an automatic postback to the server will occur whenever the user changes the content of the text box. We should set it to false as we want to avoid server round trips.
Reference:
.NET Framework Class Library, CustomValidator.ClientValidationFunction Property [C#]
.NET Framework Class Library, TextBox.AutoPostBack Property [C#]
Incorrect Answers
A, B: We want to validate the control with client side script to save a server round-trip.
D: If the AutoPastBack is set to true an automatic postback to the server will occur whenever the user changes the text in the text box. This is what we want to avoid.

QUESTION NO: 18
You create a Web custom control named TKToggle that users can turn on and off. The
TKToggle control includes a Button control named toggleButton. You write an event handler
named toggleButton_Click for the toggleButton.Click event. This event adjusts the BorderStyle property to signify whether the Button is toggled on or off.
You want to add code to the TKToggle class so that when toggleButton is clicked, pages that contain instances of TKToggle can process custom event handling code. You add the following code to the TKToggle class:
public event EventHandler ChangedValue;
protected void OnChangedValue(EventArgs e)
{
ChangedValue(this, e);
}
You need to add code to the toggleButton_Click so that pages that contain instances of TKToggle can handle the ChangedValue event and process custom event handling code.
Which lines of code are two possible ways to achieve this goal? (Each correct answer presents a complete solution. Choose two)
A. ChangedValue(this, EventArgs.Empty);
B. s.Click += new System.EventHandler(this.OnChangedValue);
C. OnChangedValue(EventArgs.Empty);
D. OnChangedValue(this, EventArgs.Empty);
Answer: B, C
Explanation:
B: To wire your event handler to the instance, you must create an instance of EventHandler that takes a reference to OnChangedValue in its argument and add this delegate instance to the Click event.
C: We can invoke the OnChangedValue event. We must use only the EventArgs parameter.
Note: To consume an event in an application, you must provide an event handler (an event-handling method) that executes program logic in response to the event and register the event handler with the event source. This process is referred to as event wiring.
Reference:
C# Programmer's Reference, Events Tutorial
.NET Framework Developer's Guide, Consuming Events [C#]
Incorrect Answers
A: We must use the OnChangedValue event.
D: We should specify only the EventArgs parameter.

QUESTION NO: 19
You create an ASP.NET application to provide corporate news and information to Gsoft’s employees. The application is used by employees in New Zealand.
Default.aspx has a Web Form label control named currentDateLabel. The Page.Load event
handler for Default.aspx included the following line of code:
currentDateLabel.Text = DateTime.Now.ToString(“D”)
You need to ensure that the data is displayed correctly for employees in New Zealand. What should you do?

A. In the Web.config file for the application, set the culture attribute of the globalization element to en-NZ.
B. In the Web.config file for the application, set the uiCulture attribute of the globalization element to en-NZ.
C. In Visual Studio .NET, set the responseEncoding attribute in the page directive for Default.aspx to UTF-8.
D. In Visual Studio .NET, save the Default.aspx page for both versions of the application by selecting Advanced Save Options from the File menu and selecting UTF-8.

Answer: A
Explanation: The culture attribute of the globalization element specifies the default culture for processing incoming Web requests.
Reference: .NET Framework General Reference, Element
Incorrect Answers
B: The uiculture attribute of the globalization specifies the default culture for processing localedependent resource searches. It does not apply in this scenario.
C, D: The UTF8Encoding Class class encodes Unicode characters using UCS Transformation Format, 8-bit form (UTF-8). This encoding supports all Unicode character values and surrogates.
However, it does not help in displaying data in New Zealand format.

QUESTION NO: 20
You are a member of a team of developers creating several ASP.NET applications for
Gsoft. You want to create a reusable toolbar that will be used in each of the applications.
The toolbar will be displayed at the top of each page viewed by the user.
The contents of the toolbar will vary depending on options each user selects when creating a profile.
You want to be able to add the toolbar to the ASP.NET toolbox for each of the developers on your team.
What should you do?

A. Create a new Web Control Library project.
Create the toolbar within a Web custom control.
B. Add a new Web user control to your ASP.NET project.
Create the toolbar within the Web user control.
C. Add a new Web Form to your ASP.NET project.
Design the toolbar within the Web Form and save the Web Form with an .ascx extension.
D. Add a new component class to your ASP.NET project.
Design the toolbar within the designer of the component class.

Answer: A
Explanation: Web custom controls are compiled code, which makes them easier to use but more difficult to create. You can add a Web custom control to the Toolbox and display it in a visual designer with full Properties window support and all the other design-time features of ASP.NET server controls.
Reference: Visual Basic and Visual C# Concepts, Recommendations for Web User Controls vs. Web Custom Controls
Incorrect Answers
B: Web user controls are easy to make, but they can be less convenient to use in advanced scenarios such as this. Because Web user controls are compiled dynamically at run time they cannot be added to the Toolbox
C: A Web form would be inadequate.
D: The Component class Provides the base implementation for the IComponent interface and enables object-sharing between applications. It does not fit in this scenario.

QUESTION NO: 21
You create an ASP.NET application to display a sorted list of products in a DataGrid control.
The product data is stored in a Microsoft SQL Server database named GsoftDB. Each
product is identified by a numerical value named ProductID, and each product has an
alphabetic description named ProductName. You write ADO.NET code that uses a
SqlDataAdapter object and a SqlCommand object to retrieve the product data from the
database by calling a stored procedure.
You set the CommandType property of the SqlCommand object to
CommandType.StoredProcedure. You set the CommandText property of the object to
procProductList. Your code successfully files a DataTable object with a list of products that is sorted by ProductID in descending order.
You want to data to be displayed in reverse alphabetic order by ProductName.
What should you do?

A. Change the CommandType property setting of the SqlCommand object to
CommandType.Text.
Change the CommandText property setting of the SqlCommand object to the following:
SELECT * FROM procProductList ORDER BY ProductName DESC;
Bind the DataGrid control to the DataTable object.
B. Create a new DataView object based on the DataTable object.
Set the Sort Property of the DataView object to “ProductName DESC”.
Bind the DataGrid control to the DataView object.
C. Set the AllowSorting property of the DataGrid control to True.
Set the SortExpression property of the DataGridColumn that displays ProductName to
“ProductName DESC”.
Bind the DataGrid control to the DataTable object.
D. Set the DisplayExpression property of the DataTable object to “ORDER BY ProductName
DESC”.
Bind the DataGrid control to the DataTable object.

Answer: B
Explanation: We can create a DataView object, set the appropriate Sort Property and bind the DataGrid control to the DataView, and not the DataTable object.
Reference: .NET Framework Developer's Guide, Sorting and Filtering Data Using a DataView [C#]
Incorrect Answers
A: procProductList is a stored procedure. It cannot be used in the FROM clause of a SELECT statement.
C: The DataGrid.AllowSorting property gets or sets a value that indicates whether sorting is enabled. The DataGridColumn.SortExpression property gets or sets the name of the field or expression to pass to the OnSortCommand method when a column is selected for sorting.
However, the sorting only occurs when a user clicks the column header.
D: The DataTable.DisplayExpression gets or sets the expression that will return a value used to represent this table in the user interface. This is only a display string. We cannot use it to sort the DataTable.

QUESTION NO: 22
You are creating an ASP.NET application for Gsoft. The application will be used to
identify potential customers.
Your application will call an XML Web service run by Wide World Importers. The XML Web service will return an ADO.NET DataSet object containing a list of companies that purchase wine. You want to merge this DataSet object into a DataSet object containing a list of companies that are potential customers.
You specify wideWorld as the name of the DataSet object form Wide World Importers, and you specify customerProspects as the name of the DataSet object containing potential customers. After the merge, customerProspects will include the company names in wideWorld.
The two DataSet objects contain tables that have the same names and primary keys. The tables in the two DataSet objects contain columns that have the same names and data types. A table in wideWorld also contains additional columns that you do not want to add to customerProspects. If customerProspects included any tables containing rows with pending changes, you want to preserve the current values in those rows when the merge occurs.
Which lime of code should you use to merge the wideWorld DataSet object into
customerProspects DataSet object?

A. customerProspects.Merge (wideWorld, true, MissingSchemaAction.Ignore);
B. customerProspects.Merge (wideWorld, true, MissingSchemaAction.AddWithKey);
C. wideWorld.Merge (customerProspects, true, MissingSchemaAction.Ignore);
D. wideWorld.Merge (customerProspects, true, MissingSchemaAction.Add);

Answer: A
Explanation: The DataSet.Merge (DataTable, Boolean, MissingSchemaAction) method merges this DataTable with a specified DataTable preserving changes according to the specified argument, and handling an incompatible schema according to the specified argument.
As we want to merge the DataSets into the wideWorld DataSet we should apply the merge method on wideWorld.
The Ignore MissingSchemaAction ignores the extra columns. This meets the requirement not to add the extra columns from the table in wideWorld that contains additional columns.
Reference: .NET Framework Class Library, DataSet.Merge Method (DataTable, Boolean,
MissingSchemaAction) [C#]
.NET Framework Class Library, MissingSchemaAction Enumeration [C#]
Incorrect Answers
B: The AddWithKey MissingSchemaAction adds the necessary columns and primary key
information to complete the schema. However, we do not want to add any extra columns.
C, D: As we want to merge the DataSets into the customerProspects DataSet we should apply the merge method on customerProspects, not on wideWorld.

QUESTION NO: 23
You are creating an ASP.NET page for selling movie tickets. Users select a region, and then
they select from a list of cities in that region. The site displays the names and locations of movie
theaters in the city selected by the user.
Your company, Gsoft Brothers, maintains a list of theaters in a database table that includes
the city, name, and street address of each theater. You want to minimize the time required to
retrieve and display the list of theater names after a user selects the region and city.
What should you do?
A. Modify the connection string to add the packet size property and set its values to 8192.
B. Add the following directive to the page:
070 - 315
- 22 -
OutputCache VaryByParam=”city”
C. Add the following directive to the page:
OutputCache VaryByControl=”region;city”
D. Modify the connection string to keep your database’s connection pool as small as possible.
Answer: B
Explanation: You can vary user control output to the cache by specifying the user control name and
the parameter. We use the VaryByParam attribute of the @ OutputCache
Reference: .NET Framework Developer's Guide, Caching Multiple Versions of a User Control,
Based on Parameters [C#]
Incorrect Answers
A: The Packet Size property of the Connection string is the size in bytes of the network packets used
to communicate with an instance of data provider. It is not an optimal property to change to
optimize data retrieval.
C: The company database does not seem to include a region column.
D: If we keep the connection pool small we would allow less simulation connections. However, this
would not minimize the required to retrieve and display the data.
QUESTION NO: 24
You are creating an ASP.NET page for Gsoft. The page uses string concatenation to gather
data from multiple e-mail messages and format the data for display on the page.
You want to ensure that the page displays as quickly as possible.
What should you do?
A. Write code that uses the Append method of the StringBuilder object.
B. Write code that uses the Substring method of the String object.
C. Write code that uses the Concat method of the String object.
D. Write code that uses the plus-sign (+) operator to concatenate the strings.
Answer: A
Explanation: The StringBuilder.Append method appends the string representation of a specified
object to the end of this instance.The StringBuilder class represents a string-like object whose value
is a mutable sequence of characters. The value is said to be mutable because it can be modified once
it has been created by appending, removing, replacing, or inserting characters.
Reference: .NET Framework Class Library, StringBuilder.Append Method [C#]
Incorrect Answers
B: The Substring method is used to select a part of a string, not to concatenate multiple strings.
C: The String.Concat method Concatenates one or more instances of String, or the String
representations of the values of one or more instances of Object. However, compared to the
070 - 315
- 23 -
Append method of the StringBuilder object, the Concat method create new instances, and is
therefore not the preferred method.
D: Not he best solution.
QUESTION NO: 25
You create an ASP.NET application that produces sales reports for the Gsoft corporation.
The sales data is stored in a Microsoft SQL Server database that is used for transaction
processing. The application consists of complex Transact-SQL statements.
Many users report that the report generation is taking longer to run each day. You need to
improve response times.
What are two possible ways to achieve this goal? (Each correct answer presents a complete
solution. Choose two)
A. Use an OleDbDataAdapter indexes exist on the SQL Server tables.
B. Ensure that appropriate indexes exist in the SQL Server tables.
C. Rewrite your SQL statements to use aliases for all table names.
D. Rewrite your direct SQL statements as stored procedures and call the stored procedures from
your application.
E. Configure queries to run in the security context of the user who is running the query.
Answer: B, D
Explanation:
B: We use an index to speed access to data in a database table.
Note: When Microsoft SQL Server executes a query, the query optimizer evaluates the costs of
the available methods for retrieving the data and uses the most efficient method. SQL Server can
perform a table scan, or it can use an index if one exists.
D: A stored procedure is a batch of SQL Statements that is located on the SQL Server. This saves
network bandwidth as the SQL Statements do not have to be send from the client to the SQL
Server computer. Furthermore, SQL Server compiles the stored procedures and selects an
optimal execution plan. This saves time as well.
Reference:
SQL Server Books Online, Creating an Index
SQL Server Books Online, Creating a Stored Procedure
Incorrect Answers
A: OleDBDataAdapter can be used to access SQL Server databases. However, they introduce
overhead.
C: Aliasing the table names would not improve performance.
E: The security context of the Stored Procedure does not effect performance.
QUESTION NO: 26
070 - 315
- 24 -
You create an ASP.NET page that uses images to identify areas where a user can click to
initiate actions. The users of the application use Internet Explorer.
You want to provide a pop-up window when the user moves the mouse pointer over an image.
You want the pop-up window to display text that identifies the action that will be taken if the
user clicks the image.
What should you do?
A. For each image, set the AlternateText property to specify the text you want to display, and set
the ToolTip property to True.
B. For each image, set the ToolTip property to specify the text you want to display.
C. In the onmouseover event handler for each image, add code that calls the RaiseBubbleEvent()
method of the System.Web.UI.WebControls.Image class.
D. In the onmouseover event handler for each image, add code that calls the ToString() method
of the System.Web.UI.WebControls.Image class.
Answer: B
Explanation: WebControl.ToolTip property gets or sets the text displayed when the mouse pointer
hovers over the Web server control. The use of the ToolTip property meets the requirement of this
scenario.
Reference: .NET Framework Class Library, WebControl.ToolTip Property [C#]
Incorrect Answers
A: The AlternateText property is used to specify the text to display if the image is not available.
C: The RaiseBubbleEvent is not useful here.
Note: ASP.NET server controls such as the Repeater, DataList and DataGrid Web controls can
contain child controls that raise events. Rather than each button raising an event individually,
events from the nested controls are "bubbled"—that is, they are sent to the control's parent.
D: The ToStringMethod() would not by itself provide the functionality required.
QUESTION NO: 27
You create an ASP.NET page to display a sorted list of products in a DataGrid control. The
product data is stored in a Microsoft SQL Server database. Each product is identified by a
numerical value named ProductID, and each product has an alphabetic description named
ProductName. You write ADO.NET code that uses a SqlDataAdapter object and a
SqlCommand object to retrieve the product data from the database by calling a stored
procedure.
You set the CommandType property of the SqlCommand object to
CommandType.StoredProcedure. You set the CommandText property of the object to
procProductList. Your code successfully fills a DataTable object with a list of products that is
sorted by ProductID in descending order.
You want the data to be displayed in reverse alphabetic order by ProductName.
What should you do?
070 - 315
- 25 -
A. Change the CommandType property setting of the SqlCommand object to
CommandType.Text.
Change the CommandText property setting of the SqlCommand object to the following:
SELECT * FROM procProductList ORDER BY ProductName DESC;
Bind the DataGrid control to the DataTable object.
B. Create a new DataView object based on the DataTable object.
Set the Sort Property of the DataView object to “ProductName DESC”.
Bind the DataGrid control of the DataView object.
C. Set the AllowSorting property of the DataGrid control to True.
Set the SortExpression property of the DataGridColumn that displays ProductName to
“ProductName DESC”.
Bind the DataGrid control to the DataTable object.
D. Set the DisplayExpression property of the DataTable object to “ORDER BY ProductName
DESC”.
Bind the DataGrid control to the DataTable object.
Answer: B
Explanation: We can create a DataView object, set the appropriate Sort Property and bind the
DataGrid control to the DataView, and not the DataTable object.
Reference: .NET Framework Developer's Guide, Sorting and Filtering Data Using a DataView [C#]
Incorrect Answers
A: procProductList is a stored procedure. It cannot be used in the FROM clause of a SELECT
statement.
C: The DataGrid.AllowSorting property gets or sets a value that indicates whether sorting is
enabled. The DataGridColumn.SortExpression property gets or sets the name of the field or
expression to pass to the OnSortCommand method when a column is selected for sorting.
However, the sorting only occurs when a user clicks the column header.
D: The DataTable.DisplayExpression gets or sets the expression that will return a value used to
represent this table in the user interface. This is only a display string. We cannot use it to sort the
DataTable.
QUESTION NO: 28
You are creating an e-commerce site for Gsoft. Your site is distributed across multiple
servers in a Web farm.
Users will be able to navigate through the pages of the site and select products for purchase.
You want to use a DataSet object to save their selections. Users will be able to view their
selections at any time by clicking a Shopping Cart link.
You want to ensure that each user’s shopping cart DataSet object is saved between requests
when the user is making purchases on the site.
What should you do?
A. Create a StateBag object.
Use the StateBag object to store the DataSet object in the page’s ViewState property.
070 - 315
- 26 -
B. Use the HttpSessionState object returned by the Session property of the page to store the
DataSet object.
Use the Web.config file to configure an out-of-process session route.
C. Use the Cache object returned by the page’s Cache property to store a DataSet object for each
user.
Use an HttpCachePolicy object to set a timeout period for the cached data.
D. Use the Session_Start event to create an Application variable of type DataSet for each
session.
Store the DataSet object in the Application variable.
Answer: B
Explanation: A HttpSessionState object provides access to session-state values as well as sessionlevel
settings and lifetime management methods. We should use an out-of-process session to ensure
that each user’s shopping cart DataSet object is saved between requests
Note: ASP.NET provides three distinct ways to store session data for your application: in-process
session state, out-of-process session state as a Windows service, and out-of-process session state in a
SQL Server database. The out-of-process solutions are primarily useful if you scale your application
across multiple processors or multiple computers, or where data cannot be lost if a server or process
is restarted.
Reference:
.NET Framework Class Library, HttpSessionState Class [C#]
.NET Framework Developer's Guide, Developing High-Performance ASP.NET Applications [C#]
Incorrect Answers
A: An StateBag object manages the view state of ASP.NET server controls, including pages. This
object implements a dictionary. It would not be useful in this scenario however.
C: A cache is not a secure storage location.
D: As multiple servers are going to be used an Application variable is not the best solution.
QUESTION NO: 29
You are creating an ASP.NET page for Gsoft. Gsoft Employees will use the page to
enter suggested names for new products. Each suggestion is saved in a Microsoft SQL Server
database. The table in the database for suggestion includes the following three columns.
Column name Content
EmployeeID identification number of employee making a suggestion
ProductID identification number for the product being named
Suggestion suggested name for product
To add a suggestion to the ASP.NET page, an employee logs on by entering the appropriate
EmployeeID and password. The employee then uses a drop-down list box to select a ProductID
and uses a grid to enter suggested names for that product. The employee can enter multiple
suggestions for a single products before submitting the page.
070 - 315
- 27 -
The database table has a unique index that includes the EmployeeID, ProductID, and
Suggestion columns. The unique index does not allow the same suggested name to be recorded
twice for the same product by the same employee.
You are using a SqlDataAdapter object to insert the suggestions into the database. If one of the
suggested names for a product is a duplicate, the database returns an error to your code. You
do not want such errors to interrupts processing. You want your code to continue inserting any
remaining suggestions entered by the employee. You also want to be able to access a list of any
suggested names that were skipped due to errors.
What should you do?
A. Set the SqlDataAdapter object’s ContinueUpdateOnError property to true before calling the
object’s Update method.
B. Enclose your call to the SqlDataAdapter object’s Update method in a try/catch block.
In the Catch code, set the object’s ContinueUpdateOnError property to true.
C. Create an event handler for the SqlDataAdapter object’s RowUpdated event.
In the event handler, if the SqlRowUpdatedEventArgs object’s UpdateStatus property has a
value of UpdateStatus.ErrorsOccured, then set the SqlDataAdapter object’s
ContinueUpdateOnErrorProperty to true.
D. Create an event handler for the SqlDataAdapter object’s RowUpdated event.
In the event handler, if the SqlRowUpdatedEventArgs object’s Errors property returns a nonnull
value, then set the SqlDataAdapter object’s ContinueUpdateOnError property to true.
Answer: A
Explanation: The SqlDataAdapter.ContinueUpdateOnError property gets or sets a value that
specifies whether to generate an exception, or the row in error when an error is encountered during a
row update. If ContinueUpdateOnError is set to true, no exception is thrown when an error occurs
during the update of a row. The update of the row is skipped and the error information is placed in
the RowError property of the row in error.
Reference: .NET Framework Class Library, SqlDataAdapter Members
Incorrect Answers
B: We should set the ContinueUpdateOnError property to true beforehand, not the Catch code.
C, D: An event handler is not needed. The required functionality is inherent in the SqlDataAdapter
class.
QUESTION NO: 30
You are creating an ASP.NET application that uses the Microsoft SQL Server .NET Data
Provider to connect to Gsoft’s database. Your database administrator reports that, due to
heavy usage of the application, data requests are being blocked while users wait for new
connections to be created.
You want to improve throughput by setting a minimum connection pool size of 10.
What should you do?
070 - 315
- 28 -
A. Add a connection element under an appSettings element in the Web.config file for your
application, and specify a minimum size of 10 for the connection pool.
B. Add a connection element under an appSettings element in the Machine.config file on your
Web server, and specify a minimum size of 10 for the connection pool.
C. Add a Min Pool Size property to the connection string you use when opening a connection,
and specify a minimum size of 10 for the connection pool.
D. Add a Min Pool Size property to your ADO.NET connection objects, and assign a value of 10
to the property.
Answer: C
Explanation: The Min Pool Size property of the connection string denotes the minimum number of
connections maintained in the pool.
Reference: .NET Framework Developer's Guide, Connection Pooling for the SQL Server .NET Data
Provider
Incorrect Answers
A, B: The appSettings element contains custom application settings. However, Minimum pool size
should be configured in the connection string, not in the custom application settings.
D: Min Pool Size is not a property of a connection object. It is an attribute in the connection string.
QUESTION NO: 31
You are creating an ASP.NET application for Gsoft. An earlier version of the application
uses ActiveX components that are written in Visual Basic 6.0. The new ASP.NET application
will continue to use the ActiveX components.
You want the marshaling of data between your ASP.NET application and the ActiveX
components to occur as quickly as possible.
Which two actions should you take? (Each correct answer presents part of the solution. Choose
two)
A. Use ODBC binding.
B. Use late binding.
C. Use early binding
D. Set the AspCompat attribute of the Page directive to true.
E. Set the AspCompat attribute of the Page directive to false.
Answer: C, D
Explanation:
C: Early binding is a better choice for performance reasons.
D: When using single-threaded (STA) COM components, such as components developed using
Visual Basic, from an ASP.NET page, you must include the compatibility attribute
aspcompat=true in an tag on the ASP.NET page.
Reference: .NET Framework Developer's Guide, COM Component Compatibility
070 - 315
- 29 -
Incorrect Answers
A: ODBC is set of legacy database drivers. OleDB and SQL should be used. Furthermore, database
drivers are irrelevant in this scenario.
B: While late binding to components is still supported, early binding is a better choice for
performance reasons.
E: The aspcomat attribute must be set to true.
QUESTION NO: 32
You are creating an ASP.NET application for Gsoft. Customers will use this application to
manage their own insurance policies. For example, a customer can use the application to renew
policies.
An existing COM component named TestKPolicyLibrary.dll contains the logic for calculating
the renewal premium. TestKPolicyLibrary.dll is written in Visual Basic 6.0. The class that
performs the calculations is named cPolicyActions. The CalculateRenewal function of
cPolicyActions accepts a policy identification number and returns a premium as a Double.
You need to use TestKPolicyLibrary.dll in your ASP.NET application. You also need to enable
the application to use the cPolicyActions class.
What should you do?
A. Run the following command in a command window:
TLBIMP.EXE TestKPolicyLibrary.DLL
/out:TestKPolicyLibrary.NET.DLL
Copy the original TestKPolicyLibrary.dll to the /bin directory of your ASP.NET application.
B. Run the following command in a command window:
TLBEXP.EXE TestKPolicyLibrary.DLL
/out:TestKPolicyLibrary.NET.DLL
Copy the original TestKPolicyLibrary.dll to the /bin directory of your ASP.NET application.
C. Select Add Existing Item from the Project menu in Visual Studio .NET and browse to
TestKPolicyLibrary.dll.
D. Select Add Reference from the Project menu in Visual Studio .NET, select the COM tab, and
browse to TestKPolicyLibrary.dll.
Answer: D
Explanation: To add a reference to a COM object from a .NET application:
1. Open a new or existing Microsoft Visual C# .NET project in Visual Studio .NET.
2. Click the Project menu and select Add Reference.
3. In the Add Reference window, click the COM tab.
4. Scroll down the list of components and select the one you want to reference, such as
Microsoft CDO For Exchange 2000 Library. Click Select. After the component name appears
in the Selected Components window, click OK.
Note: The COM component must have been previously registered on the server for this to
succeed.
070 - 315
- 30 -
Reference: Using COM Interoperability in Visual Basic .NET
Incorrect Answers
A: TBLIMP is required if Visual Studio .NET macros must reference COM components. TLBIMP
"wraps" the component, enabling Visual Studio .NET macros to reference it. However, TLBIMP
is not required if we are going to reference a COM object from a Visual Studio .NET application.
B: Tlbexp.exe generates a type library that contains definitions of the types defined in the assembly.
Applications such as Visual Basic 6.0 can use the generated type library to bind to the .NET
types defined in the assembly. However, the requirements of this scenario is the opposite: we
want to reference a COM object from an Visual Studio .NET application.
C: We must specify that we are referencing a COM object.
QUESTION NO: 33
You are creating an ASP.NET application for Gsoft. The company data is stored in a
Microsoft SQL Server 6.5 database. Your application generates accounting summary reports
based on transaction tables that contain million of rows.
You want your application to return each summary report as quickly as possible. You need to
configure your application to connect to the database and retrieve the data in a away that
achieves this goal.
What should you do?
A. Use a SqlConnection object to connect to the database, and use a SqlCommand object to run
a stored procedure that returns the data.
B. Use an OleDbConnection object to connect to the database, and use an OleDbCommand
object to run a stored procedure that returns the data.
C. Configure SQL Server to support HTTP access, and create an XML template to run a stored
procedure that returns the data in XML format.
D. Use COM interop to create an ADODB.Connection object, and use an ADODB.Command
object to run a SQL statement that returns the data.
Answer: B
Explanation: We need to use an OleDBConnection to connect to SQL Server Version 6.5 (or
earlier).
Note: The .NET Framework includes the SQL Server .NET Data Provider (for Microsoft SQL
Server version 7.0 or later), and the OLE DB .NET Data Provider.
Reference: .NET Framework Developer's Guide, .NET Data Providers [C#]
Incorrect Answers
A: We could use a SqlConnection object only if the SQL Server were SQL Server 7.0, 2000 or later.
C: HTTP functionality is not required in this scenario. It would introduce unnecessary overhead.
D: ADODB is a legacy standard and should not be used here.
070 - 315
- 31 -
QUESTION NO: 34
You are creating a Web site for Gsoft. You receive product lists in the form of XML
documents. You are creating a procedure to extract information from these XML documents
according to criteria that your users will select.
When a user makes a request, you want the results of these requests to be returned as quickly
as possible.
What should you do?
A. Create an XmlDataDocument object and load it with the XML data.
Use the DataSet property of the object to create a DataSet object.
Use a SQL SELECT statement to extract the requested data.
B. Create an XmlDataDocument object and load it with the XML data.
Use the SelectNodes method of the object to extract the requested data.
C. Create an XPathDocument object and load it with the XML data.
Call the CreateNavigator method to create an XPathNavigator object.
Call the Select method of the XPathNavigator object to run an XPath query that extracts the
requested data.
D. Create an XmlReader object.
Use the Read method of the object to stream through the XML data and to apply an XPath
expression to extract the requested data.
Answer: C
Explanation: The XPathDocument class provides a fast read-only cache for XML document
processing using XSLT. XPath (XML Path Language) is a graph navigation language. XPath is used
to select a set of nodes from an XML document.
Reference: .NET Framework Class Library, XPathDocument Class
QUESTION NO: 35
You create English, French, and German versions of a test engine ASP.NET application you
are developing for Gsoft Inc. You have separate resource files for each language version.
You need to deploy the appropriate resource file based on the language settings of the server.
What should you do?
A. Create an installer and set the Installer.Context property for each version of your application.
B. Create an installer that has a launch condition to verify the locale settings.
C. Create an installer that has a custom action to install only location-specific files.
D. Create an installer that has an MsiConfigureProduct function to install the appropriate
version.
Answer: C
070 - 315
- 32 -
Explanation: Custom actions are a Windows Installer feature that allows you to run code at the end
of an installation to perform actions that cannot be handled during installation. This is an appropriate
solution for this scenario as we only want to deploy the resource files on the server.
Note: Resources can be composed of a wide range of elements, including interface elements that
provide information to the user (for example a bitmap, icon, or cursor); custom resources that contain
data an application needs; version resources that are used by setup APIs; and menu and dialog box
resources.
Reference:
Visual Studio, Working with Resource Files
Visual Studio, Custom Actions
Incorrect Answers
A: We just want to deploy the resource files. We do not need to set the Context property in the
application.
B: We don’t need any launch conditions. We just want to deploy the resource files.
D: We just want to deploy the resource files.
QUESTION NO: 36
You are creating an ASP.NET page to retrieve sales data from a Microsoft SQL Server
database. You are writing a method named GetTestKSales to run a stored procedure in the
SQL Server database. The stored procedure has one input parameter that is used to specify a
product. The stored procedure returns to the year-to-date sales for that products.
You declare a numeric variable in the GetTestKSales method. You want to assign the return
value of the stored procedure to the variable.
What should you do?
A. Create a SqlDataAdapter object and call its Fill method to run the stored procedure and
assign the year-to-date sales value to your numeric variable.
B. Create a SqlDataAdapter object and call its Update method to run the stored procedure and
assign the year-to-date sales value to your numeric variable.
C. Create a SqlCommand object and call its ExecuteScalar method to run the stored procedure
and assigns the year-to-date sales value to your numeric variable.
D. Create a SqlCommand object and call its ExecuteReader method to run the stored procedure
and assign the year-to-date sales value to your numeric variable.
Answer: C
Explanation: The SqlCommand.ExecuteScalar method executes the query, and returns the first
column of the first row in the resultset returned by the query. Extra columns or rows are ignored. The
ExecuteScalar method to retrieve a single value (for example, an aggregate value) from a database.
Reference: .NET Framework Class Library, SqlCommand.ExecuteScalar Method [C#]
Incorrect Answers
070 - 315
- 33 -
A, B: A SqlDataAdapter object represents a set of data commands and a database connection that
are used to fill the DataSet and update a SQL Server database. However, in this scenario we
only want to retrieve a single scalar value.
D: The SqlCommand.ExecuteReader method Sends the CommandText to the Connection and builds
a SqlDataReader. However, we are only interested in a single scalar value, not a SQLDataReader
object capable of providing a stream of data.
QUESTION NO: 37
You are creating an ASP.NET application for Gsoft Your code uses the System.Data
namespace. The marketing managers at your company use a page on your Web site to edit the
prices of the company’s products.
You retrieve product part numbers, named, and prices from a database. You store this
information in a DataSet object named productInfo, and you display the data on the Web page.
The marketing managers use your page to edit one or more prices, and you record these
change in productInfo. The marketing managers click a Save button to save their changes.
You write code in the Click event handler for the Save button to save the edited prices to the
database. You want to extract the edited rows in productInfo before performing the update.
You create a second DataSet object named productChanges to hold only edited product data.
Which line of code should you use to copy the edited rows from productInfo into
productChanges?
A. productChanges =
productInfo.GetChanges(DataRowState.Detached);
B. productChanges =
productInfo.GetChanges();
C. productChanges.Merge(
productInfo, true);
D. productChanges.Merge(
productInfo, false);
Answer: B
Explanation: The DataSet.GetChanges method gets a copy of the DataSet containing all changes
made to it since it was last loaded, or since AcceptChanges was called.
Reference: .NET Framework Class Library, DataSet.GetChanges Method [C#]
Incorrect Answers
A: The DataRowState is not relevant since we have not created any DataRows in this scenario.
C, D: We are only want to extract the changes rows from the DataSet, not merge the two DataSet.
QUESTION NO: 38
You company Gsoft Inc. hosts an ASP.NET application that provides customer
demographic information. Some of the demographics data is presented by using images.
070 - 315
- 34 -
The target audience for the application includes a significant number of users who have low
vision. These individuals use various browsers that vocalize the textual content of Web pages.
These users need to receive the content of the images in vocalized form.
You need to modify the application to make it accessible for your target audience. You need to
accomplish this task with the minimum amount of development effort.
How should you modify the application?
A. Modify all ASP.NET pages in the application so that the view state is enabled.
B. Modify all ASP.NET pages in the application to add custom logic that conveys the
demographic information in either textual or graphical format.
C. Modify all images in the application so that the ToolTip property conveys the same
demographic information as the image.
D. Modify all images in the application so that the AlternateText property conveys the same
demographic information as the image.
Answer: D
Explanation: The AlternateText property is used by accessibility utilities such as the Windows XP
narrator in order to present graphics as speech.
QUESTION NO: 39
You are developing an ASP.NET application for Gsoft’s intranet. Employees will use the
application to administer their employee benefits. The benefits information is stored in a
Microsoft SQL Server database named Benefits.
An employee can select benefits options from 10 different drop-down list boxes. The values for
each list are stored in separate tables in the Benefits database. The values that are available for
employees to choose can change once each year during the benefits enrollment period.
You want to minimize the number of times your application must access the Benefits database
to obtain the values for the drop-down list box.
Which two courses of action should you take? (Each correct answer presents part of the
solution. Choose two)
A. Create one stored procedure that returns the result for all 10 drop-down list boxes.
Create one DataTable object for each of the 10 drop-down list boxes.
Use a SqlDataReader object to populate 10 DataTable objects by calling the NextResult()
method.
Bind the drop-down list boxes to the DataTable objects.
B. Create a stored procedure that returns the result set for all 10 drop-down list boxes.
Bind the drop-down list boxes to the DataReader object.
C. Create one DataTable object for each of the 10 drop-down list boxes.
Create a stored procedure for each of the 10 tables.
Use a SqlDataReader object to populate the 10 DataTable objects.
Bind the drop-down list boxes to the DataTable objects.
D. Store the result sets for the 10 drop-down list boxes in a DataSet object.
Add the DataSet objects to the Cache object for the application.



<< Home

This page is powered by Blogger. Isn't yours?