文档详情

微软认证考试070-320

xinsh****encai
实名认证
店铺
2022-06-29
DOC
1.32MB
约152页
微软认证考试070-320_第1页
1/152
微软认证考试070-320_第2页
2/152
微软认证考试070-320_第3页
3/152

Exam : 070-320Title : Developing XML Web Services and Server Components with Microsoft Visual C#.NETVer : 11/02/06QUESTION 1:070-320 You develop an application named ckApp. This application needs to run on the same computer as aWindows service named ckService. You want to ensure that ckService starts from ckApp if ckService is not already running.Which code segment should you use?A. ServiceController ckServiceController = new ServiceController("ckService");if (ckServiceController.Status == ServiceControllerStatus.Stopped){ ckServiceController.Start(); }B. ServiceController ckServiceController = new ServiceController("ckService"); ckServiceController.Start();C. String[] ckArgs = new string [1];ckArgs[0] = "ckService";ServiceController ckServiceController = new ServiceController();if (ckServiceController.Status == ServiceControllerStatus.Stopped){ ckServiceController.Start(ckArgs); }D. String[] ckArgs = new string[1];ckArgs[0] = "ckService";ServiceController ckServiceController = new ServiceController();myServiceController.Start(ckArgs);Answer: AQUESTION 2:Your Microsoft SQL Server database contains a table named CertK Orders. CertK Orders is used tostore new purchase orders as they are entered into an order-entry application. To keep up withcustomer demand, the order fulfillment department wants to know at 15-minute intervals when neworders are entered.You need to develop an application that reads CertK Orders every 15 minutes and sends all neworders to the order fulfillment department. The application will run on computer that is used byseveral users who continuously log on and log off from the network to perform miscellaneous tasks.Which type of .NET application should you use?A. Windows Form B. Windows serviceC. XML Web serviceD. .NET Remoting objectAnswer: BExplanation: A Windows service would still be running even though users logs on and off.Incorrect AnswersA - The Power of Knowing 070-320 A: A Windows Form would be closed when a user logs off.C: An XML Web service is not guaranteed to keep running if a user logs off.D: You can use .NET Remoting to enable different applications to communicate with one another.However, a remoting object would be destroyed when a user logs off the system.SECTION 2: Create and consume a serviced component.SUBSECTION 1: Implement a serviced component. (4 questions)QUESTION 3:You create a serviced component named CertK Item that implements an interface named I CertK Item.You want to ensure that calls to the serviced component through I CertK Item are queued.What should you do? A. To CertK Item, add the following attribute:[InterfaceQueuing(true, Interface="I CertK Item")]B. To CertK Item, add the following attribute:[Transaction(TransactionOption.Disabled,Isolation=TransactionIsolationLevel.Serializable)]C. To the CertK Item assembly, add the following attribute:[assembly: ApplicationQueuing(Enabled=true,QueueListenerEnabled=true)]D. In the CertK Item implementation, override the Activate method from the ServicedComponent class.In the Activate method, add the following code segment:Queue q = new Queue(); q.Enqueue(this);Answer: CExplanation: In addition to enabling queued component support at the application level, you must markyour interfaces as capable of receiving queued calls. You do that by using setting theQueueListenerEnabled attribute to True.Note: The COM+ Queued Components (QC) service provides an easy way to invoke and executecomponents asynchronously. Processing can occur without regard to the availability or accessibility of eitherthe sender or receiver.Reference: .NET Framework Developer's Guide, Queued Components [C#]Incorrect AnswersA: The signature for the InterfaceQueuing attribute as shown in Answer A is wrong.B: Transactions are not helpful for interface queuing configuration.D: Creating a new queue in the Active method is not correct in this scenario.QUESTION 4:You are creating a serviced component named ItemCKInventory. An online catalog application willuse ItemCKInventory to display the availability of products in inventory.Additional serviced components written by other developers will continuously update the inventorydata as orders are placed. The ItemCKInventory class includes the following code segment:A - The Power of Knowing _Public Class ItemCKInventoryInherits ServicedComponent' Method code goes here.End Class070-320 ItemInventory is configured to require transactions. You want ItemInventory to respond to requestsas quickly as possible, even if that means displaying inventory values that are not up to date with themost recent orders.What should you do? A. To the ItemCKInventory class, add the following attribute:B. To all methods of the ItemCKInventory class, add the following attribute:C. Modify the Transaction attribute of the ItemCKInventory class to be the following attribute:D. Modify the Transaction attribute of the ItemCKInventory class to be the following attribute: Answer: DExplanation: The ReadUncommitted transaction isolation level makes a dirty read is possible, meaning that no shared locks are issued and no exclusive locks are honored. This will reduce the number of locks,compared to the default transaction isolation level of readcommitted. Reduced number of locks will increasethe performance.Incorrect AnswersA: Object pooling is a COM+ service that enables you to reduce the overhead of creating each objectfrom scratch. However, object pooling is not much use in transactions.B: Autocomplete does not apply here.C: Timeout configuration would not address performance issue.Reference: .NET Framework Class Library, IsolationLevel EnumerationQUESTION 5:You are creating a serviced component named UserManager. UserManager adds user accounts tomultiple transactional data sources. The UserManager class includes the following code segment:[Transaction(TransactionOption.Required)][SecurityRole("Admin")]public class UserManager : ServicedComponent {public void AddUser(string CertK name, string CertK password) {// Code to add the user to data sources goes here.}}A - The Power of Knowing 070-320 You must ensure that the AddUser method reliably saves the new user to either all data sources or nodata sources.What should you do? A. To AddUser, add the following attribute:[AutoComplete()]B. To UserManager, add the following attribute:[JustInTimeActivation(false)] C. To the end of AddUser, add the following line of code:ContextUtil.EnableCommit();D. To the end of AddUser, add the following line of code:ContextUtil.MyTransactionVote = true;Answer: CExplanation: The TransactionOption.Required shares a transaction, if one exists, and creates anew transaction, if necessary. We should commit this transaction at the end of AddUser withContextUtil.EnableCommit ( ) statement.Reference: .NET Framework Class Library, ContextUtil MethodsIncorrect AnswersA: Autocomplete is out of context here.B: Just-in-time (JIT) activation is a COM+ service that enables you to create an object as a nonactive,context-only object. JIT does not apply here.D: Not useful.QUESTION 6:You create two serviced components named OrderPipeline and OrderAdmin. Each component isregistered in a separate COM+ server application.Both components use pricing data. OrderPipeline reads the pricing data for placing user orders.OrderAdmin modifies the pricing data.You want to ensure that OrderPipeline accesses the pricing data as quickly as possible, while stillbeing able to immediately retrieve any pricing changes made by OrderAdmin.What should you do? A. Store the pricing data in the Shared Property Manager.B. Store the pricing data in Microsoft SQL Server database.C. Store the pricing data in a Hashtable object within OrderAdmin.Expose the Hashtable object through a property on OrderAdmin.D. Store the pricing data in an XmlDocument object within OrderAdmin.Expose the XmlDocument object through a property on OrderAdmin.Answer: CExplanation: A Hashtable can safely support one writer and multiple readers concurrently. This is the mostefficient solutionA - The Power of Knowing Incorrect Answers070-320 A: A Shared Property Manager would be a possible solution, however it is not required and is not themost efficient solution. Note: In COM+, shared transient state for objects is managed by using the Shared Property Manager(SPM). The SPM is a resource dispenser that you can use to share state among multiple objectswithin a server process.B: SQL Server could provide a solution. However, it would not be the most efficient solution.D: A hast table would be more efficient.Reference:.NET Framework Class Library, Hashtable.IsSynchronized PropertyPlatform SDK: COM+ (Component Services), The Shared Property Manager SUBSECTION 2: Createinterfaces that are visible to COM. (7 questions)QUESTION 7:You are using Visual Studio .NET to develop an application to replace a COM-based application. Aformer colleague began writing a .NET class for the new application. This class will be used by clientapplications as a COM object. You are assigned to finish writing the class.The class included the following code segment:[Com Visible(false)]public class CkClass {public CkClass() {// Implementation code goes here.}[ComVisible(true)]public int CkMethod(string param) {return 0; }[ComVisible(true)]protected bool CkOtherMethod(){return true;}[ComVisible(true)]public int CkProperty {get { return 0; }}// Other implementation code goes here.}When this code runs, it will expose one or more methods to the client application through COM.Which member or members will be exposed? (Choose all that apply)A. CkMethodB. CkOtherMethodC. CkPropertyD. CkClass constructorA - The Power of Knowing Answer: A, CQUESTION 8:070-320 You are using a Visual Studio .NET to develop an application that uses a non-COM DLL namedCertkiller Functions.dll. This DLL is written in unmanaged code.The DLL contains a function that parses a string into an array of string words and an array ofnumbers. A call to the function includes the following pseudocode:input = "A string with 6 words and 2 numbers"words = nullnumbers = nullParse(input, words, numbers)After execution, words contains all string words found in input and numbers contains all integersfound in input. You need to enable your application to call this function.Which code segment should you use?A. [DllImport(" Certkiller Functions.dll")] public static extern void Parse(string input, string[] words, int[]numbers;B. [DllImport(" Certkiller Functions.dll")] public static extern void Parse(string input, ref string[] words,ref int[] numbers); C. [DllImport(" Certkiller Functions.dll")] public static extern void Parse(String inout, params string[]words, params int[] numbers);D. [DllImport(" Certkiller Functions.dll")] public extern void Parse(string input, [out] string[] words, [out]int[] numbers;Answer: BQUESTION 9:You create a services component named OrderStatus that is in an assembly named Certkiller Orders.OrderStatus is in its own COM+ application named Certkiller App.OrderStatus is used by multiple client applications to look up the status of orders. Because youanticipate that client applications will frequently access OrderStatus, you need to ensure that themethod calls are processed as quickly as possible.What should you do? A. Configure OrderStatus to require a transaction. B. Configure Certkiller App to be a library application.C. Add the AutoComplete attribute to all methods in OrderStatus.D. Configure Certkiller Orders to be a shared assembly, and install it in the global assembly cache. A - The Power of Knowing Answer: BQUESTION 10:070-320 You are developing a Windows-based application that requires the use of a calculation functionnamed CalculateValue. This function includes the following signature:int CalculateValue(int); CalculateValue is located in an unmanaged DLL named Certkiller Functions.dll, and is not part of aCOM interface. You need to be able to use CalculateValue in your application. Your project directorycontains a copy of Certkiller Functions.dll.While you are working in Debug mode, you attempt to run your application. However, aSystem.DllNotFoundException is thrown. You verify that you are using the correct function named.You also verify that the code in the DLL exposes CalculateValue. You have not modified the projectassembly, and you have not modified machine-level security. You need to test your applicationimmediately.What should you do? A. Move Certkiller Functions.dll to your project's bin directory.B. Move Certkiller Functions.dll to your project's Debug directory.C. Immediately before the declaration of CalculateValue, add the following code segment:[SuppressUnmanagedCodeSecurityAttribute()]D. Immediately before the call to CalculateValue, add the following code segment:SecurityPermission perm = new SecurityPermission(SecurityPermissionFlag.UnmanagedCode);perm.Assert();Answer: BQUESTION 11:You are using Visual Studio .NET to develop an application named Certkiller App. You have acommon business logic component that was created in COM that you want to use until you canreplace it with Visual Studio .NET code.You create the Visual Studio .NET solution for the new application. You want to use the COMcomponent in your Visual Studio .NET solution.What should you do? A. Register the COM component by using Regsvr32.exe.B. Run the Type Library Exporter (Tlbexp.exe) and pass the COM component as the filename parameter.C. Use Visual Studio .NET to add a reference to the COM component.D. Run the Assembly Registration tool (Regasm.exe) and pass the COM component as the filename parameter.Answer: CA - The Power of Knowing 070-320 Explanation: We simply need to add a reference to the COM component.Incorrect AnswersA: Regsrv32 is not required in Visual Studio .NET. Regsrv32 was used for Visual Basic 6.0, and forVisual C++ 6.0 components.B: Tlbexp.exe generates a type library from a common language runtime assembly. Tlbexp.exegenerates a type library but does not register it.D: We only use Regasm.exe when we need to access .NET Framework classes in COM Clients.However, in this scenario we want to access the COM Component into our Visual Studio .NETsolution. Note: To register or deregister a .NET class with COM, you must run a command-line tool called theAssembly Registration Tool (Regasm.exe). Regasm.exe adds information about the class to thesystem registry so COM clients can use the .NET class transparently.Reference:.NET Framework Developer's Guide, Registering Assemblies with COM.NET Framework Tools, .NET Framework ToolsQUESTION 12:You are using Visual Studio .NET to develop a new application to replace an older COM-basedapplication. The new application will use some of the old COM components until they can be replacedby Visual Studio .NET code.Your application uses a COM DLL named Certkiller COM.dll. The Visual Studio .NET assembly forCertkiller COM.dll must be named OurDotNetCOM. You must use the name "ProjectX" for thenamespace of the COM components. You must ensure that your application uses these namingguidelines.What should you do? A. Reference Certkiller COM.dllfrom Visual Studio .NET.Change the assembly name in Solution Explorer.Change the namespace name by editing the assembly.B. Reference Certkiller COM.dllfrom Visual .NET.Change the assembly name in Solution Explorer.Change the namespace name by using the Namespace property of a CodeNamespaceImport object.C. Run the Type Library Importer (Tlbimp.exe) with the /namespace and /out options to create theassembly.D. Run the Type Library Importer (Tlbimp.exe) with the /out option to create the assembly.Change the namespace by using the Namespace property of a CodeNamespaceImport object.Answer: CExplanation: The Type Library Importer converts the type definitions found within a COM type library intoequivalent definitions in a common language runtime assembly. We should use the /namespace option tospecify the namespace in which to produce the assembly. We must use the /out option to specify output file,assembly, and namespace in which to write the metadata definitions.Reference: .NET Framework Tools, Type Library Importer (Tlbimp.exe)A - The Power of Knowing Incorrect AnswersA: Not a practical solution.B: An incomplete solution.070-320 D: We should use the /namespace option to specify the namespace in which to produce the assembly.QUESTION 13:You are using Visual Studio .NET to develop an application to replace a COM-based application. Youare assigned to write a .NET class that will be used by client applications as a COM object. Your classcode is being moved and modified while development continues on the new application.You want to minimize any possible disruption to the COM interface as a result of code changes.Which code segment should you use?A. [ClassInterface()]public Class CKClassToExpose {public int Calc() {// Implementation code goes here.}}B. [Guid("9ED54F84-A89D-4fcd-A854-44251E925F09")]public interface ICKClassToExpose {public int Calc();}[ClassInterface[ClassInterfaceType.None)]public int Calc() {// Implementation code goes here.}}C. [Guid("9ED54F84-A89D-4fcd-A854-44251E925F09")][ComVisible(true)]public class CKClassToExpose {public int Calc() {// Implementation code goes here.}}D. [ClassInterface(ClassInterfaceType.AutoDispatch)]public class CKClassToExpose {public int Calc() {// Implementation code goes here.}}Answer: DExplanation: The ClassInterfaceType.AutoDispatch indicates that the class only supports late binding forCOM clients. A dispinterface for the class is automatically exposed to COM clients on request. TheA - The Power of Knowing 070-320 dispinterface does not exhibit versioning problems because of the late bindings.Incorrect AnswersA: ClassInterface() is not correct usage.B: The ClassInterfaceType.None indicates that no class interface is generated for the class. If nointerfaces are implemented explicitly, the class will only provide late bound access throughIDispatch. Users are expected to expose functionality through interfaces that are explicitlyimplemented by the class.C: ComVisible does not achieve much. Public classes are visible by default.Reference: .NET Framework Class Library, ClassInterfaceType Enumeration QUESTION 14:You are creating a Visual Studio .NET assembly, which will run as a shared assembly with otherapplications. The assembly will be installed in the global assembly cache. You will distribute theassembly to many customers outside Certkiller .You must ensure that each customer receives your assembly without alteration, in a 。

下载提示
相关文档
正为您匹配相似的精品文档