Interview questions and answers for Advanced .NET Framework Features. Advanced .NET
Framework topics, Print Support, Localization, globalization, XML Web Service, accessibility
requirements, HelpProvider component, CultureInfo, Unicode format, Com Interoperability,
Advanced .NET Framework C#, VB.NET Interview Question and Answers for .NET Framework
Version 2.0, 3.0, 3.5, 4.0, 4.5
1. Briefly describe how to use the PrintDocument component to print a document.
Discuss maintaining correct line spacing and multipage documents.
The PrintDocument class exposes the Print method, which raises the PrintPage event.
Code to render printed items to the printer should be placed in the PrintPage event
handler. The PrintPage event handler provides the objects required to render to
the printer in an instance of the PagePrintEventArgs class. Content is rendered
to the printer using the Graphics object provided by PagePrintEventArgs. You can
calculate correct line spacing by dividing the height of the MarginBounds property
by the height of the font you are rendering. If your document has multiple pages,
you must set the PagePrintEventArgs.HasMorePages property to true, which causes
the PrintPage event to fire again. Because the PrintPage event handler retains no
inherent memory of how many pages have been printed, you must incorporate all logic
for printing multiple pages into your event handler.
2. Explain how to use the Begin and End methods on a Web Service to make an
asynchronous method call.
Every public Web method on a Web Service can be called either synchronously or asynchronously.
To make an asynchronous call to a Web method, you call the method named Begin<webmethod>,
where <webmethod> is the name of the method. This method requires a delegate
to an appropriate callback method and returns a value of IAsyncResult. This value
is returned as a parameter in the callback method. To retrieve the data returned
by the Web method, call End<webmethod>, supplying a reference to the IAsyncResult
returned by Begin<webmethod>. This will allow you to retrieve the actual data
returned by the Web method.
3. Briefly describe the five accessibility requirements of the Certified for
Windows logo program. The five requirements are
Support standard system settings. This requires your application to ¬be able to
conform to system settings for colors, fonts, and other UI elements.
- Be compatible with High Contrast mode. This requirement can be met by using only
the System palette for UI colors.
- Provide documented keyboard access for all UI features. Key points in this requirement
are shortcut keys and accessible documentation.
- Provide notification of the focus location. This requirement is handled primarily
by the .NET Framework.
- Convey no information by sound alone. This requirement can be met by providing redundant
means of conveying information.
4. Explain how to use the HelpProvider component to provide help for UI elements.
You can provide either a HelpString or a help topic for UI elements with the HelpProvider.
The HelpProvider provides HelpString, HelpKeyWord, and HelpNavigator properties
for each control on the form. If no value for the HelpProvider.HelpNameSpace is
set, the HelpString will be provided as help. If the HelpNameSpace is set, the HelpProvider
will display the appropriate help topic as configured by the HelpKeyWord and HelpNavigator
properties. Help for a particular element is displayed when the element has the
focus and the F1 key is pressed.
5. Describe how to create localized versions of a form.
To create a localized version of a form, set the Localizable property to true. Then
set the Language property to the language/region for which you want to create the
localized form. Make any localization-related changes in the UI. The changed property
values will automatically be stored in resource files and loaded when the CurrentUICulture
is set to the appropriate CultureInfo.
6. Explain how to convert data in legacy code page formats to the Unicode format.
You can use the Encoding.Convert method to convert data between encoding types.
This method requires instances of both encoding types and an array of bytes that
represents the data to be converted. It returns an array of bytes in the target
format. You can convert a string or array of chars to an array of bytes with the
Encoding.GetBytes method and can convert an array of bytes back to chars with the
Encoding.GetChars method.
7. Explain the difference between Globalization and Localization.
Globalization refers to the application of culture-specific format to existing data.
Localization refers to providing new culture-specific resources and retrieving the
appropriate resources based on the culture setting.
8. Explain how to use the PrintPreviewDialog control to display a preview of
a printed document before it is printed.
You display a preview of a printed document with the PrintPreviewDialog control
by first setting the PrintDocument property of the PrintPreviewDialog instance to
the PrintDocument you want to preview, then by calling the PrintPreviewDialog.Show
command to display the dialog box.
9. What are the different approaches to testing?
There are two different approaches to testing: the waterfall approach and the evolutionary
approach.
10. Explain the waterfall approach.
The waterfall approach is a traditional approach in which each developer in the
development team works in phases. These phases cover requirement analysis, design
and specifications requirements, coding, final testing, and release.
11. Explain the evolutionary approach.
In the evolutionary approach, you develop a modular piece or unit of application,
test it, fix it, and then add another small piece that adds functionality. You then
test the two units as an integrated component, increasing the complexity as you
proceed.
12. How does the Visual Studio .NET debugger work?
When you debug a Visual Studio .NET application, the debugger first maps the native
code to MSIL, and then maps the MSIL code to source code by using a PDB file.
13. What are the main windows and dialog boxes that you use to debug a Visual
Studio .NET application?
The main windows and dialog boxes that you use to debug a Visual Studio .NET application
are the Visual Studio .NET debugger window, Breakpoints window, Watch window, Call
Stack window, Locals window, Autos window, and Processes window.
14. What is code instrumentation?
Code instrumentation is a set of tasks that you perform to monitor and analyze information
about the performance of your applications. It involves activities such as writing
tracing code for the application, collecting trace information, analyzing the trace
output, and troubleshooting the problems that occur at run time.
15. How do you implement code instrumentation?
You can implement code instrumentation by using tracing, debugging, performance
counters, and event logs.
16. Which tool do you need to use to convert .txt files to .resources files?
If you have text files as resources, then you can use the ResGen.exe tool to convert
.txt files to .resources files. The syntax for using the ResGen.exe tool is ResGen
strings.txt myResources.resource
17. Which tool do you need to use to compile the .resources files into satellite
assemblies?
Once you have created .resources files, you can compile them into satellite assemblies
by using Al.exe, the Assembly Linker (AL) tool. The AL tool creates satellite assemblies
from the .resources files that you specify. As you know, satellite assemblies cannot
contain any executable code and can contain only resources. The following command
shows you how to use the Al.exe tool to generate a satellite assembly: al /t:lib
/embed:myResource.resources /culture:de /out:MyRes.resources.dll
18. What are the deployment features of the .NET Framework?
The .NET Framework provides the following deployment features:
- No-impact applications
- Private components
- Controlled code sharing
- Side-by-side versioning
- Xcopy deployment
- On-the-fly updates
- Integration with Microsoft Windows Installer
- Enterprise deployment
- Downloading and caching
- Partially trusted code
19. What is the format of the assembly version stored in the AssemblyInfo file?
The assembly version number is a four-part number. The format of the version number
is <\major version>.<minor version>.<build number>.<revision>
20. Which attribute do you use to specify the version number of an assembly?
You use the AssemblyVersion() attribute to specify the version of an assembly.
21. What are Merge Module projects?
Merge Module projects enable you to install and deploy components consistently.
Merge Module projects ensure that the correct version of a component is installed
on the target computer. A Merge Module project contains a component such as a DLL
along with dependent files, resources, registry entries, and setup logic. You cannot
install merge modules directly. The modules are merged with an .msi file for each
application that uses the component. This ensures that the component is installed
consistently for all applications, eliminating problems such as version conflicts,
missing registry entries, and improperly installed files. A merge module contains
unique version information that the Windows Installer database uses to determine
which applications can use the component, preventing the premature removal of a
component. Therefore, a new merge module is created for every incremental version
of a component. You should not update a merge module after including the module
in an installer. The deployment tools in Visual Studio .NET make it easy to create
Merge Modules and include them in installers for your applications.
22. What type of Setup project do you create to deploy XML Web services?
To deploy XML Web services, you create a Web Setup project.
23. Which tools does the .NET Framework provide to export types defined in an
assembly to a type library?
The .NET Framework provides the Type Library Exporter (Tlbexp.exe) to export types
defined in an assembly to a type library.
24. Which tool can you use to register managed types with the Windows registry?
You can use the Assembly Registration Tool (Regasm.exe) to register managed types
with the Windows registry.
25. What tasks does the common language runtime perform to locate and bind an
assembly?
The common language runtime performs the following tasks, in the order listed, to
locate and bind to assemblies:
- Determines the correct assembly version
- Checks for the previously loaded assembly
- Checks the global assembly cache
- Locates the assembly through the codebase setting or probing