Manage data in a .NET Framework application by using .NET Framework 2.0 system types. (Refer System namespace) | • | Value types | | • | Reference types | | • | Attributes | | • | Generic types | | • | Exception classes | | • | Boxing and UnBoxing | | • | TypeForwardedToAttributes class |
|
|
|
|
| 
|
Manage a group of associated data in a .NET Framework application by using collections. (Refer System.Collections namespace) | • | ArrayList class | | • | Collection interfaces | | • | Iterators | | • | Hashtable class | | • | CollectionBase class and ReadOnlyCollectionBase class | | • | DictionaryBase class and DictionaryEntry class | | • | Comparer class | | • | Queue class | | • | SortedList class | | • | BitArray class | | • | Stack class |
|
|
|
|
| 
|
Improve type safety and application performance in a .NET Framework application by using generic collections. (Refer System.Collections.Generic namespace) | • | Collection.Generic interfaces | | • | Generic Dictionary | | • | Generic Comparer class and Generic EqualityComparer class | | • | Generic KeyValuePair structure | | • | Generic List class, Generic List.Enumerator structure, and Generic SortedList class | | • | Generic Queue class and Generic Queue.Enumerator structure | | • | Generic SortedDictionary class | | • | Generic LinkedList | | • | Generic Stack class and Generic Stack.Enumerator structure |
|
|
|
|
| 
|
Implement .NET Framework interfaces to cause components to comply with standard contracts. (Refer System namespace) | • | IComparable interface | | • | IDisposable interface | | • | IConvertible interface | | • | ICloneable interface | | • | INullableValue interface | | • | IEquatable interface | | • | IFormattable interface |
|
|
|
|
| 
|
Embed configuration management functionality into a .NET Framework application. (Refer System.Configuration namespace) | • | Configuration class and ConfigurationManager class | | • | ConfigurationSettings class, ConfigurationElement class, ConfigurationElementCollection class, and ConfigurationElementProperty class | | • | Implement IConfigurationSectionHandler interface | | • | ConfigurationSection class, ConfigurationSectionCollection class, ConfigurationSectionGroup class, and ConfigurationSectionGroupCollection class | | • | Implement ISettingsProviderService interface | | • | Implement IApplicationSettingsProvider interface | | • | ConfigurationValidationBase class | | • | Implement IConfigurationSystem interface |
|
|
|
|
| 
|
Debug and trace a .NET Framework application by using the System.Diagnostics namespace. | • | Debug class and Debugger class | | • | Trace class, CorrelationManager class, TraceListener class, TraceSource class, TraceSwitch class, XmlWriterTraceListener class, DelimitedListTraceListener class, and EventlogTraceListener class | | • | Debugger attributes |
|
|
|
|
| 
|
Serialize or deserialize an object or an object graph by using runtime serialization techniques. (Refer System.Runtime.Serialization namespace) | • | Serialization interfaces | | • | Serilization attributes | | • | SerializationEntry structure and SerializationInfo class | | • | ObjectManager class | | • | Formatter class, FormatterConverter class, and FormatterServices class | | • | StreamingContext structure |
|
|
|
|
| 
|
Control the serialization of an object into XML format by using the System.Xml.Serialization namespace. | • | Serialize and deserialize objects into XML format by using the XmlSerializer class. | | • | Control serialization by using serialization attributes. | | • | Implement XML Serialization interfaces to provide custom formatting for XML serialization. | | • | Delegates and event handlers provided by the System.Xml.Serialization namespace |
|
|
|
|
| 
|
Access files and folders by using the File System classes. (Refer System.IO namespace) | • | File class and FileInfo class | | • | Directory class and DirectoryInfo class | | • | DriveInfo class and DriveType enumeration | | • | FileSystemInfo class and FileSystemWatcher class | | • | Path class | | • | ErrorEventArgs class and ErrorEventHandler delegate | | • | RenamedEventArgs class and RenamedEventHandler delegate |
|
|
|
|
| 
|
Compress or decompress stream information in a .NET Framework application (refer System.IO.Compression namespace), and improve the security of application data by using isolated storage. (Refer System.IO.IsolatedStorage namespace) | • | IsolatedStorageFile class | | • | IsolatedStorageFileStream class | | • | DeflateStream class | | • | GZipStream class |
|
|
|
|
| 
|
Implement access control by using the System.Security.AccessControl classes. | • | DirectorySecurity class, FileSecurity class, FileSystemSecurity class, and RegistrySecurity class | | • | AccessRule class | | • | AuthorizationRule class and AuthorizationRuleCollection class | | • | CommonAce class, CommonAcl class, CompoundAce class, GeneralAce class, and GeneralAcl class | | • | AuditRule class | | • | MutexSecurity class, ObjectSecurity class, and SemaphoreSecurity class |
|
|
|
|
| 
|
Implement a custom authentication scheme by using the System.Security.Authentication classes. (Refer System.Security.Authentication namespace) | • | Authentication algorithms and SSL protocols |
|
|
|
|
| 
|
Encrypt, decrypt, and hash data by using the System.Security.Cryptography classes. (Refer System.Security.Cryptography namespace) | • | DES class and DESCryptoServiceProvider class | | • | HashAlgorithm class | | • | DSA class and DSACryptoServiceProvider class | | • | SHA1 class and SHA1CryptoServiceProvider class | | • | TripleDES and TripleDESCryptoServiceProvider class | | • | MD5 class and MD5CryptoServiceProvider class | | • | RSA class and RSACryptoServiceProvider class | | • | RandomNumberGenerator class | | • | CryptoStream class | | • | CryptoConfig class | | • | RC2 class and RC2CryptoServiceProvider class | | • | AssymetricAlgorithm class | | • | ProtectedData class and ProtectedMemory class | | • | RijndaelManaged class and RijndaelManagedTransform class | | • | CspParameters class | | • | CryptoAPITransform class | | • | Hash-based Message Authentication Code (HMAC) |
|
|
|
|
| 
|
Control permissions for resources by using the System.Security.Permission classes. (Refer System.Security.Permission namespace) | • | SecurityPermission class | | • | PrincipalPermission class | | • | FileIOPermission class | | • | StrongNameIdentityPermission class | | • | UIPermission class | | • | UrlIdentityPermission class | | • | PublisherIdentityPermission class | | • | GacIdentityPermission class | | • | FileDialogPermission class | | • | DataProtectionPermission class | | • | EnvironmentPermission class | | • | IUnrestrictedPermission interface | | • | RegistryPermission class | | • | IsolatedStorageFilePermission class | | • | KeyContainerPermission class | | • | ReflectionPermission class | | • | StorePermission class | | • | SiteIdentityPermission class |
|
|
|
|
| 
|
Control code privileges by using System.Security.Policy classes. (Refer System.Security.Policy namespace) | • | ApplicationSecurityInfo class and ApplicationSecurityManager class | | • | ApplicationTrust class and ApplicationTrustCollection class | | • | Evidence class and PermissionRequestEvidence class | | • | CodeGroup class, FileCodeGroup class, FirstMatchCodeGroup class, NetCodeGroup class, and UnionCodeGroup class | | • | Condition classes | | • | PolicyLevel class and PolicyStatement class | | • | IApplicationTrustManager interface, IMembershipCondition interface, and IIdentityPermissionFactory interface |
|
|
|
|
| 
|
Access and modify identity information by using the System.Security.Principal classes. (Refer System.Security.Principal namespace) | • | GenericIdentity class and GenericPrincipal class | | • | WindowsIdentity class and WindowsPrincipal class | | • | NTAccount class and SecurityIdentifier class | | • | IIdentity interface and IPrincipal interface | | • | WindowsImpersonationContext class | | • | IdentityReference class and IdentityReferenceCollection class |
|
|
|
|
| 
|
Send electronic mail to a Simple Mail Transfer Protocol (SMTP) server for delivery from a .NET Framework application. (Refer System.Net.Mail namespace) | • | MailMessage class | | • | MailAddress class and MailAddressCollection class | | • | SmtpClient class, SmtpPermission class, and SmtpPermissionAttribute class | | • | Attachment class, AttachmentBase class, and AttachmentCollection class | | • | SmtpException class, SmtpFailedReceipientException class, and SmtpFailedReceipientsException class | | • | SendCompletedEventHandler delegate | | • | LinkedResource class and LinkedResourceCollection class | | • | AlternateView class and AlternateViewCollection class |
|
|
|
|
| 
|
Enhance the user interface of a .NET Framework application by using the System.Drawing namespace. | • | Enhance the user interface of a .NET Framework application by using brushes, pens, colors, and fonts. | | • | Enhance the user interface of a .NET Framework application by using graphics, images, bitmaps, and icons. | | • | Enhance the user interface of a .NET Framework application by using shapes and sizes. |
|
|
|
|
| 
|
Add and configure Web server controls. | • | Add Web server controls to a Web Form. | | • | Configure the properties of Web server controls programmatically. | | • | Configure Web server control properties by using the Microsoft Visual Studio Property Editor. | | • | Specify whether events of a control cause a Web Form to post to the server. | | • | Configure a control to receive postback events. | | • | Access controls in Web Forms pages when working with naming containers and child controls. | | • | Create HTML server controls in the designer. | | • | Set HTML server control properties programmatically. | | • | Use HTML server controls to programmatically access HTML tags. | | • | Create HTML controls as elements in an HTML document. | | • | Use the AdRotator Web server control to manage banners and pop-up windows. | | • | Use the Button Web server control to send a command to the server when a button is clicked. | | • | Display a calendar on a Web page by using the Calendar Web server control. | | • | Implement the CheckBox Web server control. | | • | Implement the FileUpload Web server control. | | • | Create and manipulate links on a Web Form by using the HyperLink Web server control. | | • | Display an image on a Web Form by using the Image Web server control. | | • | Implement a button on a Web Form by using the ImageButton Web server control. | | • | Define hotspot regions within an image by using the ImageMap Web server control. | | • | Use the Label Web server control to display customized text on a Web page. | | • | Display a hyperlink style button on a Web Form by using the LinkButton Web server control. | | • | Display lists of information by using controls that derive from the ListControl class. | | • | Create a Web Form with static text by using the Literal Web server control. | | • | Implement pagination for controls on a page by using the Pager Web server control. | | • | Use the Panel Web server control to arrange controls in groups on a page. | | • | Create a container for a group of View controls by using the MultiView Web server control. | | • | Use the View Web server control to create a Web application. | | • | Create a mutually exclusive set of choices by using the RadioButton Web server control. | | • | Construct a table by using the Table, TableRow, and TableCell Web server controls. | | • | Enable users to type information into a Web Form by using the TextBox Web server control. | | • | Create a wizard by using the Wizard Web server control to collect data through multiple steps of a process. | | • | Use the XML Web server control to create XML data at the location of the control. | | • | Customize the appearance of Web server controls by using Web control templates. | | • | Programmatically edit settings in a Web site's configuration file. | | • | Dynamically add Web server controls to a Web Forms page. |
|
|
| 
|
|
|
Configure settings for a Web application. | • | Configure system-wide settings in the Machine.config file. | | • | Configure settings for a Web application in the Web.config file. | | • | Manage a Web application's configuration by using the Web Site Administration Tool. |
|
|
| 
| 
|
|
Program a Web application. | • | Redirect users to another Web page by using a server-side method. | | • | Detect browser types in Web Forms. | | • | Ascertain the cause of an unhandled exception at the page level. | | • | Programmatically access the header of a Web page. | | • | Implement cross-page postbacks. | | • | Assign focus to a control on a page when the page is displayed. | | • | Avoid performing unnecessary processing on a round trip by using a page's IsPostBack property. | | • | Access encapsulated page and application context. | | • | Avoid unnecessary client-side redirection by using the HttpServerUtility.Transfer method. | | • | Avoid round trips by using client-side scripts. | | • | Use a page's Async attribute to create a page that has built-in asynchronous capabilities. | | • | Convert HTML server controls to HTML elements. |
|
|
| 
| 
|
|
Implement data-bound controls. | • | Use tabular data source controls to return tabular data. | | • | Use hierarchical data source controls to display hierarchical data. | | • | Display data by using simple data-bound controls. | | • | Display data by using composite data-bound controls. | | • | Display data by using hierarchical data-bound controls. | | • | Use the FormView control to display the values of a single table record from a data source. |
|
|
| 
|
|
|
Manage connections and transactions of databases. | • | Configure a connection to a database graphically by using the Connection Wizard. | | • | Configure a connection by using Server Explorer. | | • | Configure a connection to a database by using the connection class. | | • | Connect to a database by using specific database connection objects. | | • | Enumerate through instances of Microsoft SQL Server by using the DbProviderFactories.GetFactoryClasses method. | | • | Open a connection by using the Open method of a connection object. | | • | Close a connection by using the connection object. | | • | Secure a connection to protect access to your data source. | | • | Create a connection designed for reuse in a connection pool. | | • | Control connection pooling by configuring ConnectionString values based on database type. | | • | Use connection events to detect database information. | | • | Handle connection exceptions when connecting to a database. | | • | Perform transactions by using the ADO.NET Transaction object. |
| 
|
|
|
|
|
Create, delete, and edit data in a connected environment. | • | Retrieve data by using a DataReader object. | | • | Build SQL commands visually in Server Explorer. | | • | Build SQL commands in code. | | • | Create parameters for a command object. | | • | Perform database operations by using a command object. | | • | Retrieve data from a database by using a command object. | | • | Perform asynchronous operations by using a command object. | | • | Perform bulk copy operations to copy data to a SQL Server computer. | | • | Store and retrieve binary large object (BLOB) data types in a database. |
| 
| 
|
|
|
|
Create a composite Web application control. | • | Create a user control. | | • | Convert a Web Forms page to a user control. | | • | Include a user control in a Web Forms page. | | • | Manipulate user control properties. | | • | Handle user control events within the user control code-declaration block or code-behind file. | | • | Create instances of user controls programmatically. | | • | Develop user controls in a code-behind file. | | • | Create a templated user control. |
|
|
|
| 
|
|
Copy a Web application to a target server by using the Copy Web tool. |
|
| 
|
|
|
Precompile a Web application by using the Publish Web tool. |
|
| 
|
|
|
Optimize and troubleshoot a Web application. | • | Customize event-level analysis by using the ASP.NET health-monitoring API. | | • | Use performance counters to track the execution of an application. | | • | Troubleshoot a Web application by using ASP.NET tracing. | | • | Optimize performance by using the ASP.NET Cache object. |
|
|
|
| 
|
|
Implement a consistent page design by using master pages. | • | Create a master page. | | • | Add a ContentPlaceHolder control to a master page. | | • | Specify default content for a ContentPlaceHolder. | | • | Reference external resources in a master page. | | • | Define the content of a particular page in a content page. | | • | Create a content page. | | • | Add content to a content page. | | • | Reference a master page member from a content page. | | • | Handle events when using master pages. | | • | Create a nested master page. | | • | Change master pages dynamically. |
|
|
| 
| 
|
|
Customize a Web page by using themes and user profiles. | • | Apply a theme declaratively. | | • | Apply a theme programmatically. | | • | Apply a user-selected theme programmatically. | | • | Define custom themes. | | • | Define the appearance of a control by using skins. | | • | Enable users to personalize an application by using Web Parts. | | • | Track and store user-specific information by using user profiles. | | • | Personalize a Web page by dynamically adding or removing child controls in a Placeholder control at run time. |
|
|
|
| 
|
|
Implement Web Parts in a Web application. | • | Track and coordinate all Web Parts controls on a page by adding a WebPartManager control. | | • | Connect Web Parts to each other by using connection objects. | | • | Divide a page that uses Web Parts into zones by using WebPartZones. | | • | Present a list of available Web Parts controls to users by using CatalogPart controls. | | • | Enable users to edit and personalize Web Parts controls on a page by using EditorPart controls. |
|
|
|
| 
|
|
Establish a user's identity by using forms authentication. | • | Configure forms authentication for a Web application by using a configuration file. | | • | Enable cookieless forms authentication by setting the cookieless attribute. | | • | Use membership APIs and the Membership class to manage users. | | • | Enable anonymous identification. |
|
|
| 
|
|
|
Use authorization to establish the rights of an authenticated user. | • | Manage roles in the Web Site Administration Tool. | | • | Ascertain whether a specific user is in role. | | • | Get the roles for a specific user by using the Roles object or the User object. | | • | Store role information in a cookie. | | • | Restrict access to files by using file authorization. | | • | Restrict access to portions of an application by using URL authorization. |
|
|
| 
|
|
|
Use login controls to control access to a Web application. | • | Use the Login Web server control. | | • | Use the LoginView Web server control to view a user's login status. | | • | Use the PasswordRecovery Web server control to allow a user to recover a password. | | • | Use the LoginStatus Web server control to display either a login or logout link. | | • | Use the LoginName Web server control to display a user's login name on a Web page. | | • | Use the CreateUserWizard Web server control as a UI for creating new Web application user accounts. | | • | Use the ChangePassword Web server control to allow users to change their passwords. | | • | Specify the membership provider used for logging on. | | • | Configure a mail server so that login controls can be used to send e-mail messages to users. |
|
|
| 
|
|
|
Create a mobile Web application project. |
|
| 
|
|
|
Use device-specific rendering to display controls on a variety of devices. |
|
| 
|
|
|
Use adaptive rendering to modify the appearance of Web server controls. |
|
|
|
|
|
Use the mobile Web controls to display content on a device. |
|
| 
|
|
|
Evaluate the technical feasibility of an application design concept. | • | Evaluate the proof of concept. | | • | Recommend the best technologies for the features and goals of the application. | | • | Weigh implementation considerations. | | • | Investigate existing solutions for similar business problems. |
|
|
|
|
|
|
Evaluate the technical specifications for an application to ensure that the business requirements are met. | • | Translate the functional specification into developer terminology, such as pseudo code and UML diagrams. | | • | Suggest component type and layer. |
|
|
|
|
|
|
Evaluate the design of a database. | • | Recommend a database schema. | | • | Identify the stored procedures that are required for an application. |
|
|
|
|
|
|
Evaluate the logical design of an application. | • | Evaluate the logical design for performance. | | • | Evaluate the logical design for maintainability. | | • | Evaluate the logical design for extensibility. | | • | Evaluate the logical design for scalability. | | • | Evaluate the logical design for availability. | | • | Evaluate the logical design for security. | | • | Evaluate the logical design against use cases. | | • | Evaluate the logical design for recoverability. | | • | Evaluate the logical design for data integrity. |
|
|
|
|
|
|
Evaluate the physical design of an application. Considerations include the design of the project structure, the number of files, the number of assemblies, and the location of these resources on the server. | • | Evaluate the physical design for performance. | | • | Evaluate the physical design for maintainability. | | • | Evaluate how the physical location of files affects the extensibility of the application. | | • | Evaluate the physical design for scalability. | | • | Evaluate the physical design for availability. | | • | Evaluate the physical design for security. | | • | Evaluate the physical design for recoverability. | | • | Evaluate the physical design for data integrity. |
|
|
|
|
|
|
Choose an appropriate layout for the visual interface. | • | Decide the content flow across pages. | | • | Evaluate user navigation needs. | | • | Identify the goal of the page. | | • | Ensure the congruency and consistency of the user experience throughout the application. |
|
|
|
|
|
|
Evaluate a strategy for implementing a common layout throughout the UI. | • | Suggest when to use style sheets, master pages, Web parts, custom controls, scripting, and user controls. | | • | Suggest an applicable UI standard based on the intended client environment. Considerations include chosen platforms, technologies, and browser types. |
|
|
|
|
|
|
Choose an appropriate control based on design specifications. | • | Evaluate the type of data that must be captured or displayed. | | • | Evaluate available controls. Considerations include standard .NET Framework controls and custom, internally developed, and third-party controls. | | • | Evaluate the manner in which available controls are implemented in previous and ongoing projects or applications. | | • | Evaluate the user demographic. Considerations include localization concerns. | | • | Evaluate the user environment. Considerations include screen size and browser type and version. |
|
|
|
|
|
|
Choose an appropriate data validation method at the UI layer. | • | Choose a validation method based on the data type provided. | | • | Decide how to report the feedback. Considerations include callbacks, exceptions, and writing to an event log. | | • | Identify the source of invalid data. | | • | Identify the cause of an invalid entry. | | • | Evaluate whether invalid data can be prevented. | | • | Evaluate whether an exception must be thrown. | | • | Evaluate whether an exception must be logged. | | • | Evaluate whether visual feedback, such as a message box or color, is required. |
|
|
|
|
|
|
Choose appropriate user assistance and application status feedback techniques. | • | Design a user assistance mechanism. | | • | Choose an appropriate application status feedback technique based on available control types. | | • | Choose an appropriate application status feedback technique to support accessibility. | | • | Design an application status feedback mechanism. |
|
|
|
|
|
|
Establish the required characteristics of a component. | • | Decide when to create a single component or multiple components. | | • | Decide in which tier of the application a component should be located. | | • | Decide which type of object to build. |
|
|
|
|
|
|
Create the high-level design of a component. | • | Establish the life cycle of a component. | | • | Decide whether to use established design patterns for the component. | | • | Decide whether to create a prototype for the component. | | • | Document the design of a component by using pseudo code, class diagrams, sequence diagrams, activity diagrams, and state diagrams. | | • | Evaluate tradeoff decisions. Considerations include security vs. performance, performance vs. maintainability, and so on. |
|
|
|
|
|
|
Develop the public API of a component. | • | Decide the types of clients that can consume a component. | | • | Establish the required component interfaces. | | • | Decide whether to require constructor input. |
|
|
|
|
|
|
Develop the features of a component. | • | Decide whether existing functionality can be implemented or inherited. | | • | Decide how to handle unmanaged and managed resources. | | • | Decide which extensibility features are required. | | • | Decide whether a component must be stateful or stateless. | | • | Decide whether a component must be multithreaded. | | • | Decide which functions to implement in the base class, abstract class, or sealed class. |
|
|
|
|
|
|
Develop an exception handling mechanism. | • | Decide when it is appropriate to raise an exception. | | • | Decide how a component will handle exceptions. Considerations include catching and throwing a new exception; catching, wrapping, and throwing the wrapped exception; catching and terminating, and so on. |
|
|
|
|
|
|
Develop the data access and data handling features of a component. | • | Analyze data relationships. | | • | Analyze the data handling requirements of a component. |
|
|
|
|
|
|
Consume a reusable software component. | • | Identify a reusable software component from available components to meet the requirements. | | • | Identify whether the reusable software component needs to be extended. | | • | Identify whether the reusable software component needs to be wrapped. | | • | Identify whether any existing functionality needs to be hidden. | | • | Test the identified component based on the requirements. |
|
|
|
|
|
|
Choose an appropriate exception handling mechanism. | • | Evaluate the current exception handling mechanism. | | • | Design a new exception handling technique. |
|
|
|
|
|
|
Choose an appropriate implementation approach for the application design logic. | • | Choose an appropriate data storage mechanism. | | • | Choose an appropriate data flow structure. | | • | Choose an appropriate decision flow structure. |
|
|
|
|
|
|
Choose an appropriate event logging method for the application. | • | Decide whether to log data. Considerations include policies, security, requirements, and debugging. | | • | Choose a storage mechanism for logged events. For example, database, flat file, event log, or XML file. | | • | Choose a system-wide event logging method. For example, centralized logging, distributed logging, and so on. | | • | Decide logging levels based upon severity and priority. |
|
|
|
|
|
|
Evaluate the application configuration architecture. | • | Decide which configuration attributes to store. | | • | Choose the physical storage location for the configuration attributes. | | • | Decide in which format to store the configuration attributes. | | • | Choose when to use ASP.NET Administrative tools. |
|
|
|
|
|
|
Perform a code review. |
|
|
|
|
|
Evaluate the testing strategy. | • | Create the unit testing strategy. | | • | Evaluate the integration testing strategy. | | • | Evaluate the stress testing strategy. | | • | Evaluate the performance testing strategy. | | • | Evaluate the test environment specification. |
|
|
|
|
|
|
Design a unit test. | • | Describe the testing scenarios. | | • | Decide coverage requirements. | | • | Evaluate when to use boundary condition testing. | | • | Decide the type of assertion tests to conduct. |
|
|
|
|
|
|
Perform integration testing. | • | Determine if the component works as intended in the target environment. | | • | Identify component interactions and dependencies. | | • | Verify results. |
|
|
|
|
|
|
Resolve a bug. | • | Investigate a reported bug. | | • | Reproduce a bug. | | • | Evaluate the impact of the bug and the associated cost and timeline for fixing the bug. | | • | Fix a bug. |
|
|
|
|
|
|
Evaluate the performance of an application based on the performance analysis strategy. | • | Identify performance spikes. | | • | Analyze performance trends. | | • | Track page response times. | | • | Track logon times. |
| |