User Tools

Site Tools


study_questions_audio_creation

This is an old revision of the document!


Study Questions - Audio Creation

CDEx Settings

Bitrate = 80 kbps

Mono

Quality = Very high (q = 0)

Questions To Be Recorded

Lesson 4: Detecting Management Events

C10L4Q1: What are the four most important members of the System.Management namespace?

Answer: ManagementQuery, EventQuery, ObjectQuery and ManagementObjectQuery.

C10L4Q2: What does WMI stand for?

Answer: Windows Management Instrumentation.

C10L4Q3: What are the two steps to retrieve information from the WMI?

Answer:

  1. Create a ManagementObjectSearcher object and pass the query into the constructor.
  2. Obtain a ManagementObjectCollection object by calling the ManagementObjectSearcher's Get method.

C10L4Q4: What needs to be selected from to enumerate the logical drives?

Answer: Win32_LogicalDisk

C10L4Q5: What needs to be selected from to enumerate the network adapters?

Answer: Win32_NetworkAdapterConfiguration

C10L4Q6: What needs to be selected from to enumerate the Windows Services?

Answer: Win32_Service

C10L4Q7: What class would be used to respond a change in the WMI?

Answer: ManagementEventWatcher

Lesson 1: Understanding Code Access Security

C11L1Q1: What does CAS stand for?

Answer: Code Access Security.

C11L1Q2: What is the relationship between evidence, code groups and permission sets?

Answer: The evidence that an assembly has determines what code group or groups it belongs to. The code group or groups determines what permission set or sets it gets.

C11L1Q3: What are the two types of evidence?

Answer: Host evidence and assembly evidence.

C11L1Q4: What are the three CAS policy levels and which one would you most commonly use?

Answer: Enterprise, machine and user. Machine policy is the most commonly used.

C11L1Q5: What must an assembly have to increase its trust?

Answer: A strong name.

C11L1Q6: As a developer, the permission set assigned to the My_Computer_Zone should be changed from what to what?

Follow up question: Why should it be changed?

Answer: From “Full Trust” to “Everything”.

Follow up answer: Full Trust completely skips all CAS statements in code. The Everything permission set has similar permissions, but it does not skip CAS statements.

C11L1Q7: What is the command line utility for maintaining CAS settings?

Answer: Caspol.exe - Code Access Security POLicy tool.

Lesson 2: Using Declarative Security to Protect Assemblies

C11L2Q5: What are the three SecurityActions?

Answer: RequestMinimum, RequestOptional and RequestRefuse.

C11L2Q6: CAS declarations are in what type of assemblies?

Answer: Fully trusted assemblies (or assemblies with the Full Trust permission set).

Lesson 3: Using Declarative and Imperative Security to Protect Methods

C11L3Q1: How many declarative CAS security actions are available for assemblies and how many are available for methods?

Answer: Three for assemblies, six for methods.

C11L3Q2: What are the three declarative CAS security actions for assemblies?

Answer: RequestMinimum, RequestOptional and RequestRefuse.

C11L3Q3: What are the six declarative CAS security actions for methods?

Answer: Assert, Demand, Deny, InheritanceDemand, LinkDemand, and PermitOnly.

C11L3Q4: What is the difference between the Demand CAS security action and the LinkDemand CAS security action?

Answer: Demand checks the security of all the callers, LinkDemand only checks the security of the immediate caller.

C11L3Q5: Which class is used to specify what to check for in a declarative permission statement and which is used in an imperative permission statement?

Answer: Declarative permission statements use SecurityAction, imperative permission statements use CodeAccessPermission.

C11L3Q6: How should a method check if it has a particular CAS permission?

Answer: Call the System.Security.SecurityManager.IsGranted method.

C11L3Q7: Which two security actions reduce CAS permissions for a method and what is the difference between the two?

Answer: Deny and PermitOnly. Deny removes only the specified permission, PermitOnly removes all except the specified permission.

C11L3Q8: Which two security actions reduce CAS permissions for an assembly and what is the difference between the two?

Answer: RequestRefuse and RequestOptional. RequestRefuse removes only the specified permission, RequestOptional removes all except the specified permission.

C11L3Q9: Deny and PermitOnly perform similar functions to what?

Answer: RequestMinimum and RequestOptional.

C11L3Q10: RequestMinimum and RequestOptional perform similar functions to what?

Answer: Deny and PermitOnly.

C11L3Q11: As the security action Assert can only be used once in a method, how can multiple CAS permissions be asserted?

Answer: Add the permissions to a PermissionSet object and assert that.

Lesson 2: Exposing .NET Components to COM

C13L2Q1: When .NET components are consumed by COM, what handles the marshalling between .NET and COM?

Answer: The COM Callable Wrapper (CCW).

C13L2Q2: How do you hide a public .NET class from COM?

Answer: Give it a ComVisible attribute and pass in false.

C13L2Q3: What is used to export an assembly to COM?

Answer: Visual Studio or the Type Library Exporter Utility.

Lesson 3: Using Unmanaged Code

C13L3Q4: What attribute is used to specify a library when creating a P/Invoke?

Answer: DllImport

C13L3Q5: What attribute is used to determine what order members of a structure are stored in memory?

Answer: StructLayoutAttribute

C13L3Q6: What are the three methods for determining what order members of a structure are stored in memory and how are they specified?

Answer: Auto, sequential and explicit. An instance of LayoutKind is passed to the attribute StructLayout.

Lesson 1: Understanding Reflection

C14L1Q1: What are the four parts of an assembly?

Answer: Assembly metadata (or manifest), type metadata, code and resources.

C14L1Q2: What is the relationship between assemblies, modules and types?

Answer: An assembly can contain one or more modules (although typically just one). A module can contain one or more types. An assembly can not directly contain a type (or types must be contained in a module).

Lesson 2: Assembly Attributes

C14L2Q1: How do you get a reference to the current assembly?

Answer: Call the Assembly.GetExecutingAssembly method.

C14L2Q2: Using reflection, how can you get a collection of all the attributes that a class has?

Answer: Call the Assembly.GetCustomAttributes method, which will return an array.

C14L2Q3: What happens when the revision part of the version number in the AssemblyVersionAttribute is set to an asterisk?

Answer: It will be replaced with a random number by the compiler.

C14L2Q4: What happens when the build part of the version number in the AssemblyVersionAttribute is set to an asterisk?

Answer: It will be replaced with an automatically incrementing number by the compiler.

Lesson 3: Reflecting Types

C14L3Q1: How do you create a Type object based on a particular object?

Follow up question: How do you create a Type object based on a particular class?

Answer: Call the object's GetType method.

Follow up answer: Use the typeof keyword.

C14L3Q2: If a string has been cast into a variable of type object, what will calling the method GetType on the variable return?

Answer: A Type object that represents the string class.

Lesson 5: Creating Code at Runtime

C14L5Q1: Which class is used to create a dynamic assembly?

Answer: AppDomain.

Lesson 1: Using Culture Information

C16L1Q1: What are the three culture categories?

Answer: Invariant, neutral and specific.

C16L1Q2: How can a string comparison be made that is specific to a culture and can use the CompareOptions class?

Answer:

  1. Create or get a reference to an CultureInfo object.
  2. Get a reference to the CompareInfo property of the CultureInfo object.
  3. Call the Compare method on the CompareInfo object and pass in the two strings to be compared and any CompareOtions required.

Pragmatic Programming

PragC2Q5: What is Meyer's Uniform Access principle?

Answer:

“All services offered by a module should be available through a uniform notation, which does not betray whether they are implemented through storage or through computation.”

or

“Class properties are good.”

PragC2Q6: What are two techniques for avoiding or reducing inadvertent duplication?

Answer: Normalise the data and don't store what can be calculated.

PragC2Q7: What should be done if the DRY principle needs to be violated for performance reasons?

Answer: Ensure the violation is not exposed to the outside world by keeping it contained with in the class.

PragC2Q8: How do you avoid impatient duplication?

Answer: Discipline.

PragC2Q9: What adage relates to impatient duplication?

Answer:

“Short cuts make for long delays.”

PragC2Q10: What is orthogonality?

Answer: Independence or decoupling.

PragC2Q11: What are the two major benefits of orthogonality?

Answer: Increased productivity and reduced risk.

PragC2Q12: How can you get an informal measurement of how orthogonal a team is?

Answer: Determine how many people need to be involved in discussing each change that is requested. The less people, the more orthogonal and better off the team is.

PragC2Q13: How can low orthogonality affect a team?

Answer: Confusion over responsibilities leading to bickering.

Life Questions

LifeQ3: What is the effect / affect usage mnemonic?

Answer: VANE - Verb Affect Noun Effect

Article 1: Design Principles and Design Patterns, Robert C. Martin

Art1P4Q3: What is the Open Closed Principle and who came up with it?

Answer:

“A module should be open for extension, but closed for modification.” - Bertrand Meyer

Art1P5Q1: What is the key to the OCP?

Answer: Abstraction.

Art1P8Q1: What is the Liskov Substitution Principle and who came up with it?

Answer:

“Subclasses should be substitutable for their base classes.” - Barbara Liskov

Art1P8Q2: What is the canonical example of the subtleties of the LSP?

Answer: The Circle / Ellipse dilemma.

Art1P12Q1: Violations of the LSP are also what?

Answer: Violations of the OCP.

Art1P12Q2: What is the Dependency Inversion Principle?

Answer:

“Depend on abstractions. Do not depend on concretions.”

study_questions_audio_creation.1250721547.txt.gz · Last modified: 2017/01/01 19:54 (external edit)

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki