This is an old revision of the document!
Table of Contents
Study Questions - Audio Creation
CDEx Settings
Bitrate = 80 kbps
Mono
Quality = Very high (q = 0)
Questions To Be Recorded
C13L1Q7: When generating metadata from a type library, what is the resulting assembly called?
Answer: An interop assembly.
C13L1Q8: What are the four options for generating an interop assembly containing type metadata?
Answer:
- Visual Studio.
- Type Library Importer (Tlbimp.exe).
- The TypeLibConverter class.
- Custom wrappers.
C13L1Q9: What can the TypeLibConverter class do that the Type Library Importer can not?
Answer: It can convert an in-memory type library to metadata.
C13L1Q10: What are the four high level steps to expose a COM component to the .NET Framework?
Answer:
- Import a type library as an assembly.
- Create COM types in managed code.
- Compile an interop project.
- Deploy an interop application.
Chapter 3: The Basic Tools
PragC3Q1: What are the three benefits of plain text?
Answer:
- Insurance against obsolescence
- Leverage
- Easier testing
PragC3Q2: What are three situations that make tracing statements invaluable?
Answer:
- Concurrent processes
- Real-time systems
- Event-based applications
C13L1Q11: How are COM types that are defined in an assembly used differently from other managed types?
Answer: They aren't used differently (tricky).
C13L1Q12: How is compiling an interop project different from compiling a managed project?
Answer: It isn't different (tricky).
C13L1Q13: What three things does an interop application contain?
Answer:
- A .NET client assembly.
- One or more interop assemblies.
- One or more registered COM components.
C13L1Q14: Where should private assemblies be installed?
Answer: The same directory as the application.
C13L1Q15: What must a shared assembly have and where is it installed?
Answer: It must have a strong name and be installed in the Global Assembly Cache (GAC).
C13L1Q16: What is a primary interop assembly?
Answer: A unique, vendor-supplied, strong named, interop assembly that contains type definitions (as metadata) of types implemented with COM.
C13L2Q4: What are the five guidelines for qualifying .NET types for interoperation?
Answer:
- Classes should implement interfaces explicitly.
- Managed types must be public.
- Methods, properties, fields and events must be public.
- Types must have a public default constructor to be activated from COM.
- Types can not be abstract.
C13L2Q5: What public parts of a class are not exposed to COM clients?
Answer: Parameterised constructors, static methods and constant fields.
C13L2Q6: What does the Assembly Registration tool do and what .NET class provides the equivalent functionality?
Answer: The Assembly Registration tool generates a type library and then registers it so that COM clients can use the .NET class transparently, or it can unregister an assembly. The equivalent class is RegistrationServices.
C13L2Q7: What is the difference between the Type Library Exporter and the Assembly Registration tool?
Answer: The Type Library Exporter generates a type library but does not register it. The Assembly Registration tool does both.
C13L2Q8: How do you use the Type Library Exporter to generate a subset of the types defined in an assembly?
Answer: You can't - the entire assembly is converted at once (tricky).
C13L2Q9: How can an interop assembly be activated from any COM client?
Answer: After registering it, install it in the Global Assembly Cache (GAC).
C13L2Q10: When using the Assembly Registration tool, what does the /tlb
option do?
Answer: It causes the Assembly Registration tool to generate a type library in addition to registering the types.
C13L2Q11: When should the /tlb
option of the Assembly Registration tool not be used?
Answer: If the assembly was produced by the Type Library Importer.
ITQ6: What is the difference between Cast and Convert in T-SQL?
Answer: Cast is ANSI compliant. Convert is specific to SQL Server and allows some formatting options.