Larry's profileLarry West MCSDPhotosBlogLists Tools Help

Larry West

Occupation
Location
Interests
I have been developing software since 1981 and teaching off-and-on since 1980 (mostly on since 2000).
"I want to follow a different drum, even if I'm the only one. I want to hear when I'm done, you did well, my son." -- music lyrics from John Fischer from the album "Inside".
There are no music lists on this space.

Larry West MCSD

Certified Kentuckian
December 04

Part II of Larry West's Study Guide for 70:563: Pro: Designing and Developing Windows Applications Using the Microsoft .NET Framework 3.5

563.4.0 Designing security implementation (15 percent) --

563.4.1. Design role-based security. -- .NET Framework role-based security supports authorization by making information about the principal, which is constructed from an associated identity, available to the current thread. The identity (and the principal it helps to define) can be either based on a Windows account or be a custom identity unrelated to a Windows account. .NET Framework applications can make authorization decisions based on the principal's identity or role membership, or both. A role is a named set of principals that have the same privileges with respect to security (such as a teller or a manager). A principal can be a member of one or more roles. Therefore, applications can use role membership to determine whether a principal is authorized to perform a requested action.

 -- May include but is not limited to:

563.4.1.1. implementing security by using IPrincipal and IIdentity, -- A principal object represents the security context of the user on whose behalf the code is running, including that user's identity (IIdentity) and any roles to which they belong. All principal objects are required to implement the IPrincipal interface. An identity object represents the user on whose behalf the code is running. IPrincipal.IsInRole determines whether the current principal belongs to the specified role. IPrincipal.Identity property gets the identity of the current principal. IIdentity.AuthenticationType gets the type of authentication used. (The authentication type is passed to the common language runtime by the operating system or by another authentication provider. Basic authentication, NTLM, Kerberos, and Passport are examples of authentication types.). IIdentity.IsAuthenticated get s a value that indicates whether the user has been authenticated, and IIdentity.Name gets the name of the current user.

563.4.1.2. custom vs. platform security, --

563.4.1.3. managing user functionality, --

563.4.1.4. limit or gate access, --

563.4.1.5. data decoupling, --

563.4.1.6. designing security profiles  --

 

563.4.2. Design data transmission and storage. --

 -- May include but is not limited to:

563.4.2.1. SSL, --

563.4.2.2. encryption (offline data, password management)  --

 

563.4.3. Design authentication and authorization. --

 -- May include but is not limited to:

563.4.3.1. login mechanism (domain user accounts, SQL Server user accounts), --

563.4.3.2. role-based application configuration, --

563.4.3.3. security auditing and logging, --

563.4.3.4. file system rights and authorization, --

563.4.3.5. Web service rights and authentication --

 

563.4.4. Plan Windows Vista compliance. --

 -- May include but is not limited to:

563.4.4.1. user application data directory (registry settings, isolated storage)  --

 

563.4.5. Plan least-privileged execution. --

 -- May include but is not limited to:

563.4.5.1. User Access Control (UAC), --

563.4.5.2. assembly authentication, --

563.4.5.3. certificate management  --

 

563.5.0. Planning application deployment and maintenance (11 percent) --

563.5.1. Select an installer. --

 -- May include but is not limited to:

563.5.1.1. ClickOnce, --

563.5.1.2. MSI, --

563.5.1.3. XCOPY, --

563.5.1.4. third party (InstallShield)  --

563.5.2. Plan for multiple-component application deployment. --

 -- May include but is not limited to:

563.5.2.1. bootstrap installation, --

563.5.2.2. legacy applications, --

563.5.2.3. application suite, --

563.5.2.4. COM-visible assemblies  --

563.5.3. Plan application re-deployment. --

 -- May include but is not limited to:

563.5.3.1. deploying Windows-based applications and updating, --

563.5.3.2. deploying a patch (dependencies on service packs), --

563.5.3.3. database synchronization (re-deployment of data in place [merge]), --

563.5.3.4. preserving configuration, --

563.5.3.5. unattended installation  --

 

563.5.4. Plan database deployment. --

 -- May include but is not limited to:

563.5.4.1. existing or shared instance; --

563.5.4.2. remote server; --

563.5.4.3. DLL deployment; --

563.5.4.4. shared GAC deployment; --

563.5.4.5. embedded database  --

 

563.5.5. Plan application removal. --

 -- May include but is not limited to:

563.5.5.1. clean uninstall, --

563.5.5.2. uninstalling shared components, --

563.5.5.3. uninstalling remaining components, --

563.5.5.4. restoring client state, --

563.5.5.5. clean or restore registry  --

 

563.5.6. Plan a performance-monitoring strategy. --

 -- May include but is not limited to:

563.5.6.1. profiling, --

563.5.6.2. tracing, --

563.5.6.3. performance counters, --

563.5.6.4. audit trails  --

 

563.5.7. Plan an exception-management strategy. --

 -- May include but is not limited to:

563.5.7.1. implementing a framework for logging and exception handling, --

563.5.7.2. error handling and reporting, --

563.5.7.3. user feedback  --

 

563.6.0. Designing the application architecture (17 percent) --

563.6.1. Plan a globalization and localization strategy. --

 -- May include but is not limited to:

563.6.1.1. embedding resources into the application for localization  --

 

563.6.2. Design for accessibility. --

 -- May include but is not limited to:

563.6.2.1. screen reader, --

563.6.2.2. tool tips  --

 

563.6.3. Plan an application migration strategy. --

 -- May include but is not limited to:

563.6.3.1. interoperability with legacy applications, --

563.6.3.2. integrating with non-Forms applications  --

 

563.6.4. Design n-layer architecture. --

 -- May include but is not limited to:

563.6.4.1. logically separating concerns (business objects layer or tier, data tier), --

563.6.4.2. design project structure (effective use of sub projects)  --

 

563.6.5. Plan a component re-use strategy. --

 -- May include but is not limited to:

563.6.5.1. sharing common resources, --

563.6.5.2. coupling of generic elements to specific elements, --

563.6.5.3. Object-Oriented modeling techniques, --

563.6.5.4. dealing with COM interoperability issues associated with existing legacy components  --

 

563.6.6. Plan system resource management. --

 -- May include but is not limited to:

563.6.6.1. understand JIT or GAC caching  --

 

563.6.7. Plan multi-threaded implementation and UI responsiveness. --

 -- May include but is not limited to:

563.6.7.1. implementing multi-threading and reporting progress, --

563.6.7.2. updating the UI from a background thread  --

 

563.7.0. Designing for optimized performance (11 percent) --

563.7.1. Plan optimized data retrieval. --

 -- May include but is not limited to:

563.7.1.1. type data sets vs. un-typed data sets, --

563.7.1.2. entity models, --

563.7.1.3. ORM [object role modeling] performance, --

563.7.1.4. performance monitoring of tiers for latency and chunkiness (batch retrieval, multiple small calls), --

563.7.1.5. roundtrip optimization, --

563.7.1.6. caching of frequently used data (pick List data, drop down data, list boxes)  --

 

563.7.2. Design state management. --

 -- May include but is not limited to:

563.7.2.1. storing application state, --

563.7.2.2. storing user state, --

563.7.2.3. managing server-side state  --

 

563.7.3. Plan resource management. --

 -- May include but is not limited to:

563.7.3.1. memory, --

563.7.3.2. GDI handles, --

563.7.3.3. unmanaged resources, --

563.7.3.4. resource disposition memory management, --

563.7.3.5. resource planning (skill set to project tasks), --

563.7.3.6. order of application component development  --

Part I of Larry West's Study Guide for 70-563: Pro: Designing and Developing Windows Applications Using the Microsoft .NET Framework 3.5

Skills being measured by Exam 70-563   This exam measures your ability to accomplish the technical tasks listed in the following table. The percentages indicate the relative weight of each major topic area on the exam.

563.1.0 Validating an application design against specifications (12 percent) --

563.1.1. Analyze the technical feasibility of application design. --

 -- May include but is not limited to:

563.1.1.1. architecture (Windows vs. ASP), --

563.1.1.2. resourcing (staffing, skill sets, hardware, OS), --

563.1.1.3. network capacity and distribution, --

563.1.1.4. application extensibility, --

563.1.1.5. existing applications, --

563.1.1.6. exposing APIs, --

563.1.1.7. timeframe, --

563.1.1.8. integration of third-party controls, --

563.1.1.9. applications, --

563.1.1.10. external data sources  --

 

563.1.2. Validate proof of concept. -- Proves the feasibility of a design.

 -- May include but is not limited to:

563.1.2.1. evaluating the technical specification and comparing against the proof of concept  --

 

563.1.3. Evaluate design against available resources. --

 -- May include but is not limited to:

563.1.3.1. cost, --

563.1.3.2. timeframe, --

563.1.3.3. resources (local vs. distributed teams), --

563.1.3.4. hardware resources, --

563.1.3.5. network resources, --

563.1.3.6. customer infrastructure (required hardware such as servers, routers, and RAM and required software such as OS)  --

 

563.1.4. Evaluate testing requirements. --

 -- May include but is not limited to:

563.1.4.1. stress testing, --

563.1.4.2. testing against high activity and frequency of operations, --

563.1.4.3. testing with a true representative sample, --

563.1.4.4. building test cases --

 

563.2.0 Planning data management (17 percent) --

563.2.1. Plan data access strategy. -- A data access strategy is the manner in which applications store, retrieve and manage data. Performance, deployment, and scalability, which factor into the planning and implementation of a data access strategy, can ultimately affect the architectural model.

 -- May include but is not limited to:

563.2.1.1. retrieve data from disparate data sources (XML data, flat files, and relational databases, manage class-generated data, LINQ), --

563.2.1.2. manage bulk imports and exports (ETL, data transformation), --

563.2.1.3. choose appropriate data access layer, --

563.2.1.4. manage data purity (re-validate data across trust boundaries), --

563.2.1.5. manage data asynchronously, --

563.2.1.6. leverage synchronization services, --

563.2.1.7. connection management  --

 

563.2.2. Plan data caching and persistence strategy. --

 -- May include but is not limited to:

563.2.2.1. managing data cache, --

563.2.2.2. managing data persistence (storing disconnected scenarios, managing offline data), --

563.2.2.3. mapping database to local cache (loading all customers locally), --

563.2.2.4. managing data state  --

 

563.2.3. Select a data storage mechanism. --

 -- May include but is not limited to:

563.2.3.1. security, --

563.2.3.2. target data engine, --

563.2.3.3. target environment (workstation capabilities, OS, bandwidth, domain vs. workgroup, connectivity, reliability)  --

 

563.2.4. Plan application data sharing. --

 -- May include but is not limited to:

563.2.4.1. managing data shared between forms and processes, --

563.2.4.2. managing data synchronization (ADO.NET synchronization services), --

563.2.4.3. drag and drop files or objects from outside sources  --

 

563.2.5. Design a schema evolution management strategy. --

 -- May include but is not limited to:

563.2.5.1. synchronizing an application with a schema  --

 

563.2.6. Design a concurrency management strategy. --

 -- May include but is not limited to:

563.2.6.1. database segmentation, planning for concurrency and collision avoidance, optimistic vs. pessimistic  --

 

563.3.0. Planning user interaction and presentation strategy (17 percent) --

563.3.1. Design application content flow. --

 -- May include but is not limited to:

563.3.1.1. user navigation, --

563.3.1.2. user interface goals, --

563.3.1.3. layout techniques (dynamic layout techniques), --

563.3.1.4. components not part of control data class (ToolTipProvider, ErrprProvider, HelpProvider)  --

 

563.3.2. Plan data capture. --

 -- May include but is not limited to:

563.3.2.1. validating input (type converters, regular expressions, apply business rules), --

563.3.2.2. responding to mouse and keyboard input, --

563.3.2.3. pick list (combo boxes, list boxes, auto-fill text boxes)  --

 

563.3.3. Design a reporting strategy. --

 -- May include but is not limited to:

563.3.3.1. MicrosoftReportViewer, --

563.3.3.2. CrystalReportViewer, --

563.3.3.3. print classes, --

563.3.3.4. embedded vs. external server-generated reports  --

 

563.3.4. Design user interface components. --

 -- May include but is not limited to:

563.3.4.1. common dialog boxes, --

563.3.4.2. designing navigation by using menus, --

563.3.4.3. SDI and MDI (multiple monitor configuration, implementing master and detail), --

563.3.4.4. single vs. multiple instances of the application, --

563.3.4.5. implementing data binding, --

563.3.4.6. abstracting with custom controls (abstract base classes), --

563.3.4.7. using and creating user controls (extend a custom control to add functionality, --

563.3.4.8. creating a custom DataGridView column), --

563.3.4.9. integrating with non-Forms UI elements  --

 

563.3.5. Design a data-binding strategy. --

 -- May include but is not limited to:

563.3.5.1. populating from XML, --

563.3.5.2. populating from SQL, --

563.3.5.3. populating from object data source and entity, --

563.3.5.4. lazy loads, -- Lazy Loading is an object relational pattern which is used to defer the initialization of an object until its needed. The object will not contain all of the data, but it knows how to get all of them when they are needed.

The object to be lazily loaded is originally set to null, and every request for the object checks for null and creates it "on the fly" before returning it first.    There are four main ways you can implement Lazy Load: lazy initialization, virtual proxy, value holder, and ghost.     This is an example on how to apply lazy Initialization in your class.

public class Order
{
    private int _OrderId = 0;
    private int OrderId
    {
        set { _OrderId = value; }
        get { return _OrderId; }
    }

    private Customer _Customer = null;
    public Customer Customer
    {
        get
        {   
            if (_Customer == null)
                _Customer = Customer.GetCustomerByOrderId(_OrderId); // Lazy loading the Customer
            return _Customer;
        }
        set { _Customer = value; }
    }
}

     In this way, the first access to the Customer property will causes the customer object to be loaded.

     Note : It's not always a good practice to use lazy loading, especially if loading the object requires a lot of time and resources, like accessing a webservice. In that case it's better to deep load all the required data in the object.

563.3.5.5. updating bound data (concurrency management, late commits, lazy commits), --

563.3.5.6. data context  --

 

563.3.6. Design forms inheritance. --

 -- May include but is not limited to:

563.3.6.1. visual inheritance, --

563.3.6.2. functionality common across forms  --

 

 

Part IV of Larry West''s Study Guide for 70-505: TS: Microsoft .NET Framework 3.5, Windows Forms Application Development

This is the last part -- Remember this is still a work in progress. If you find this helpful, please help me fill in the blanks. Thanks.

 

505.6.0. Deploying Windows Forms Controls  --

 

505.6.1. Create a composite Windows Forms control. --

 -- This objective may include but is not limited to:

505.6.1.1. create properties, --

505.6.1.2. methods and events, --

505.6.1.3. expose properties of constituent controls, --

505.6.1.4. create custom dialog boxes, --

505.6.1.5. customize a control’s paint and render, --

505.6.1.6. set visibility at run time, --

505.6.1.7. provide a toolbox bitmap --

 

505.6.2. Create a custom Windows Forms control by inheriting from the control class  --

 

505.6.3. Create an extended control by inheriting from an existing Windows Forms control --

 

505.7.0. Configuring and Deploying Applications  --

505.7.1. Configure the installation of a Windows Forms application by using ClickOnce technology. --

 -- This objective may include but is not limited to:

505.7.1.1. install a Windows Forms application on a client computer, --

505.7.1.2. install a Windows Forms application from a server, --

505.7.1.3. configure the required permissions of an application --

 

505.7.2. Install a Windows Presentation Foundation (WPF) browser application by using ClickOnce  --

 

505.7.3. Install a Visual Studio Tools for Office (VSTO) application by using ClickOnce  -- You can deploy Visual Studio Tools for Office solutions by using the Publish Wizard or by using the Publish page of the Project Designer. For information about the differences, see Publishing Office Solutions (2007 System). End users can install document-level customizations and application-level add-ins the following ways:

* Running the Setup program that is created when you publish your solution. For information about the Setup program, see Publishing Office Solutions (2007 System).

* Opening the deployment manifest file, which ends with the extension .vsto.

* Opening a customized document or workbook, if the prerequisites are already installed and the security policy is set up to grant trust to the solution.

 

505.7.4. Configure and work with Windows Vista User Account Control (UAC) by using ClickOnce deployments  --

 

505.7.5. Create a Windows Forms setup application. --

 -- This objective may include but is not limited to:

505.7.5.1. configure setup project to add icons during setup, --

505.7.5.2. set deployment project properties, --

505.7.5.3. configure conditional installation based on operating system versions, --

505.7.5.4. set appropriate Launch Conditions based on the .NET Framework version, --

505.7.5.5. add custom actions to a setup project, --

505.7.5.6. add error-handling code to a setup project --

 

505.7.6. Set appropriate security permissions to deploy the application. --

 -- This objective may include but is not limited to:

505.7.6.1. elevated permissions --

 

505.7.7. Configure Trusted Application deployments  -- You must follow these steps to take advantage of Trusted Application Deployment:      1. Obtain a certificate for the publisher.      2. Add the publisher to the trusted publishers store on all clients.      3. Create your ClickOnce application.      4. Sign the deployment manifest with the publisher's certificate.      5. Publish the application deployment to client computers.

 

505.7.8. Configure security features in an application. --

 -- This objective may include but is not limited to:

505.7.8.1. Configure code access security, --

505.7.8.2. configure the application to work with UAC, --

505.7.8.3. configure Windows manipulation permissions, --

505.7.8.4. configure appropriate file access permissions for the application, --

505.7.8.5. control printing security for the application --

Part III of Larry West's Study Guide for 70:505: TS: Microsoft .NET Framework 3.5, Windows Forms Application Development

505.3.0 Implementing Printing and Reporting Functionality in a Windows Forms Application  --

505.3.1. Manage the print process by using print dialogs. --

 -- This objective may include but is not limited to:

505.3.1.1. Configure print options at run time, --

505.3.1.2. change printers attached to a user’s computer, --

505.3.1.3. configure the PrintPreviewDialog control, --

505.3.1.4. set page details for printing by using the PageSetupDialog --

 

505.3.2. Construct print documents. --

 -- This objective may include but is not limited to:

505.3.2.1. Configure the PrintDocument component, --

505.3.2.2. print a text document in a Windows form, --

505.3.2.3. print graphics in a Windows form, --

505.3.2.4. print a document by using the PrintDialog component, --

505.3.2.5. alert users to the completion of a print job --

 

505.3.3. Enable security features for printing in a Windows Forms application  --

 

505.3.4. Create a customized PrintPreview component. --

 -- This objective may include but is not limited to:

505.3.4.1. setting the Document property to establish the document to be previewed, --

505.3.4.2. set Columns and Row properties, --

505.3.4.3. set the UseAntiAlias property for smoother text, --

505.3.4.4. configure zoom settings, --

505.3.4.5. set StartPage property, --

505.3.4.6. add custom methods and events to a PrintPreview control --

 

505.4.0 Enhancing Usability  --

505.4.1. Perform drag and drop operations. --

 -- This objective may include but is not limited to:

505.4.1.1 perform drag and drop within an application and across applications, --

505.4.1.2. perform drag and drop by using the Treeview control --

 

505.4.2. Implement globalization and localization for a Windows Forms application. --

 -- This objective may include but is not limited to:

505.4.2.1. work with resource files for localization, --

505.4.2.2. determine installed locales --

 

505.4.3. Implement accessibility features  --

 

505.4.4. Create and configure multiple-document interface (MDI) forms. --

 -- This objective may include but is not limited to:

505.4.4.1. create parent and child forms, --

505.4.4.2. identify active child form, --

505.4.4.3. send data to an active child form, --

505.4.4.4. arrange child forms, --

505.4.4.5. create menus for an MDI application --

 

505.4.5. Create, configure, and customize user assistance controls and components. --

 -- This objective may include but is not limited to:

505.4.5.1. Configure the PropertyGrid component, -- To use the property grid, you create a new instance of the PropertyGrid class on a parent control and set SelectedObject to the object to display the properties for.      The information displayed in the grid is a snapshot of the properties at the time the object is assigned. If a property value of the object specified by the SelectedObject is changed in code at run time, the new value is not displayed until an action is taken in the grid that causes the grid to refresh.      The property tabs within the property grid appear as buttons on the toolbar at the top of the PropertyGrid, and can vary in scope as defined in the PropertyTabScope.      The PropertyGrid control is not initially presented in the toolbox in the development environment. You can add a property grid to the toolbox (From the Tools menu, select Customize Toolbox. In the dialog box, select the Framework Components tab and then select PropertyGrid.), which enables you to drag a PropertyGrid onto your form. You can also define an instance of PropertyGrid by adding the appropriate code in your source code.      All public properties of the SelectedObject will be displayed in the PropertyGrid by default. You can hide a property so that it is not displayed in the PropertyGrid control by decorating it with the BrowsableAttribute and setting the value to false. You can specify the category that a property appears in by providing a category with the CategoryAttribute. You can provide descriptive text for your property that appears at the bottom of the PropertyGrid control by using the DescriptionAttribute.

505.4.5.2. configure the ProgressBar control, -- A ProgressBar control visually indicates the progress of a lengthy operation in one of three styles:   * Segmented blocks that increase in steps from left to right.    * A continuous bar that fills in from left to right.    * A block that scrolls across a ProgressBar in a marquee fashion.      The Style property determines the style of ProgressBar that is displayed. Note that the ProgressBar control can only be oriented horizontally. For an example of how to create a vertically oriented ProgressBar, see the ProgressBarRenderer class. The ProgressBar control is typically used when an application performs tasks such as copying files or printing documents. Users of an application might consider an application unresponsive if there is no visual cue. By using the ProgressBar in your application, you alert the user that the application is performing a lengthy task and that the application is still responding.      The Maximum and Minimum properties define the range of values to represent the progress of a task. The Minimum property is typically set to a value of 0, and the Maximum property is typically set to a value indicating the completion of a task. For example, to properly display the progress when copying a group of files, the Maximum property could be set to the total number of files to be copied.      The Value property represents the progress that the application has made toward completing the operation. The value displayed by the ProgressBar only approximates the current value of the Value property. Based on the size of the ProgressBar, the Value property determines when to display the next block or increase the size of the bar.      There are a number of ways to modify the value displayed by the ProgressBar other than changing the Value property directly. You can use the Step property to specify a specific value to increment the Value property by, and then call the PerformStep method to increment the value. To vary the increment value, you can use the Increment method and specify a value with which to increment the Value property.

505.4.5.3. configure StatusStrip, -- StatusStrip, used on forms as an area, usually displayed at the bottom of a window, in which an application can display various kinds of status information, replaces the StatusBar control. Special features of StatusStrip include a custom table layout, support for the form's sizing and moving grips, and support for the Spring property, which allows a ToolStripStatusLabel to fill available space automatically.      The following items are specifically designed to work seamlessly with both ToolStripSystemRenderer and ToolStripProfessionalRenderer in all orientations. They are available by default at design time for the StatusStrip control:   * ToolStripStatusLabel   * ToolStripDropDownButton    * ToolStripSplitButton   * ToolStripProgressBar      A StatusStrip control displays information about an object being viewed on a Form, the object's components, or contextual information that relates to that object's operation within your application. Typically, a StatusStrip control consists of ToolStripStatusLabel objects, each of which displays text, an icon, or both. The StatusStrip can also contain ToolStripDropDownButton, ToolStripSplitButton, and ToolStripProgressBar controls.      The default StatusStrip has no panels. To add panels to a StatusStrip, use the ToolStripItemCollection..::.AddRange method, or use the StatusStrip Items Collection Editor at design time to add, remove, or reorder items and modify properties. Use the StatusStrip Tasks Dialog Box at design time to run common commands.      Although StatusStrip replaces and extends the StatusBar control of previous versions, StatusBar is retained for both backward compatibility and future use if you choose.

505.4.5.4. configure ToolTip, -- With the ToolTip class, you can provide hints to a user when the user places the pointer on a control. The ToolTip class is typically used to alert users to the intended use of a control. For example, you can specify ToolTip text for a TextBox control that accepts a name, specifying the format of the name to be typed into the control. In addition to providing hints, you can also use the ToolTip class to provide run time status information. For example, you can use the ToolTip class to display connection speed and line quality data when the user moves the pointer onto a PictureBox control that displays Internet connection status.      The ToolTip class can be used in any container. To explicitly specify a container, use the ToolTip(IContainer) constructor. A single ToolTip component typically is used to create ToolTips for multiple controls on a single form. After you create a ToolTip, use a separate call to the SetToolTip method to associate ToolTip display text to an individual control. Then when the user moves the pointer on a control, the ToolTip with its text is displayed. You can call SetToolTip more than once for the same control to change the text that is associated with the control. To get the text that is associated with a control, use the GetToolTip method. To remove all ToolTip text associations with an instance of the ToolTip class, use the RemoveAll method.

505.4.5.5. configure ErrorProvider, -- ErrorProvider presents a simple mechanism for indicating to the end user that a control on a form has an error associated with it. If an error description string is specified for the control, an icon appears next to the control. The icon flashes in the manner specified by BlinkStyle, at the rate specified by BlinkRate. When the mouse hovers over the icon, a ToolTip appears showing the error description string.      Typically, you use ErrorProvider in association with data-bound controls. When using ErrorProvider with data-bound controls, you must specify the ContainerControl, either in the constructor or by setting the ContainerControl property.

505.4.5.6. configure HelpProvider controls, -- Each instance of HelpProvider maintains a collection of references to controls associated with it. To associate a Help file with the HelpProvider, set the HelpNamespace property. You specify the type of Help provided by calling the SetHelpNavigator method and providing a HelpNavigator value for the specified control. You provide the keyword or topic for the Help by calling the SetHelpKeyword method. To open Help to a specific topic, the keyword should be passed in the form topicName.htm.      To associate a specific Help string with a control, use the SetHelpString method. The string that you associate with a control using this method is displayed in a pop-up window when the user presses the F1 key while the control has focus.      If the HelpNamespace property has not been set, you must use the SetHelpString method to provide the Help text. If you have set both HelpNamespace and the Help string, Help based on the HelpNamespace will take precedence.      HelpProvider calls methods on the Help class to provide Help functionality.

505.4.5.7. configure timer components -- The Timer component is a server-based timer, which allows you to specify a recurring interval at which the Elapsed event is raised in your application. You can then handle this event to provide regular processing. For example, suppose you have a critical server that must be kept running 24 hours a day, 7 days a week. You could create a service that uses a Timer to periodically check the server and ensure that the system is up and running. If the system is not responding, the service could attempt to restart the server or notify an administrator.      The server-based Timer is designed for use with worker threads in a multithreaded environment. Server timers can move among threads to handle the raised Elapsed event, resulting in more accuracy than Windows timers in raising the event on time. For more information on server-based timers, see Introduction to Server-Based Timers.     The Timer component raises the Elapsed event, based on the value of the Interval property. You can handle this event to perform the processing you need. For example, suppose that you have an online sales application that continuously posts sales orders to a database. The service that compiles the instructions for shipping operates on a batch of orders rather than processing each order individually. You could use a Timer to start the batch processing every 30 minutes.

     * A Timer [class] is used to raise an event at user-defined intervals. This Windows timer is designed for a single-threaded environment where UI threads are used to perform processing. It requires that the user code have a UI message pump available and always operate from the same thread, or marshal the call onto another thread.      When you use this timer, use the Tick event to perform a polling operation or to display a splash screen for a specified period of time. Whenever the Enabled property is set to true and the Interval property is greater than zero, the Tick event is raised at intervals based on the Interval property setting.      This class provides methods to set the interval, and to start and stop the timer.

505.4.6. Persist Windows Forms application settings between sessions -- The Application Settings feature of Windows Forms makes it easy to create, store, and maintain custom application and user preferences on the client computer. With Windows Forms application settings, you can store not only application data such as database connection strings, but also user-specific data, such as user application preferences. Using Visual Studio or custom managed code, you can create new settings, read them from and write them to disk, bind them to properties on your forms, and validate settings data prior to loading and saving.

 

505.5.0. Implementing Asynchronous Programming Techniques to Improve the User Experience  --

505.5.1. Manage a background process by using the BackgroundWorker component. -- The BackgroundWorker class allows you to run an operation on a separate, dedicated thread. Time-consuming operations like downloads and database transactions can cause your user interface (UI) to seem as though it has stopped responding while they are running. When you want a responsive UI and you are faced with long delays associated with such operations, the BackgroundWorker class provides a convenient solution.      To execute a time-consuming operation in the background, create a BackgroundWorker and listen for events that report the progress of your operation and signal when your operation is finished. You can create the BackgroundWorker programmatically or you can drag it onto your form from the Components tab of the Toolbox. If you create the BackgroundWorker in the Windows Forms Designer, it will appear in the Component Tray, and its properties will be displayed in the Properties window.     

 -- This objective may include but is not limited to:

505.5.1.1. Run a background process, --  To set up for a background operation, add an event handler for the DoWork event. Call your time-consuming operation in this event handler. To start the operation, call RunWorkerAsync.

505.5.1.2. announce completion of a background process, -- To receive a notification when the operation is completed, handle the BackgroundWorker.RunWorkerCompleted event.

505.5.1.3. cancel a background process, -- BackgroundWorker.CancelAsync requests cancellation of a pending background operation.

505.5.1.4. report on the progress of a background component, -- To receive notifications of progress updates, handle the BackgroundWorker.ProgressChanged event.

505.5.1.5. request status of a background component -- If you need the background operation to report on its progress, you can call the ReportProgress method to raise the ProgressChanged event. The WorkerReportsProgress property value must be true, or ReportProgress will throw an InvalidOperationException.    It is up to you to implement a meaningful way of measuring your background operation's progress as a percentage of the total task completed.

 

505.5.2. Change the appearance of a UI element by using triggers. --

 -- This objective may include but is not limited to:

505.5.2.1. using multiple triggers; --

505.5.2.2. using property triggers; --

505.5.2.3. using event triggers; --

505.5.2.4. using data triggers --

 

505.5.3. Implement an asynchronous method. --

 -- This objective may include but is not limited to:

505.5.3.1. Create an asynchronous method, --

505.5.3.2. create a new process thread, --

505.5.3.3. implement advanced asynchronous techniques --

 

 

Part II of Larry West’s Study Guide for Exam 70-505: TS: Microsoft .NET Framework 3.5, Windows Forms App. Dev.

505.2.0 Integrating Data in a Windows Forms Application  --

505.2.1. Implement data-bound controls. --

 -- This objective may include but is not limited to:

505.2.1.1. Use the DataGridView control to display and update the tabular data contained in a data source, -- The DataGridView control provides a customizable table for displaying data. The DataGridView class allows customization of cells, rows, columns, and borders through the use of properties such as DefaultCellStyle, ColumnHeadersDefaultCellStyle, CellBorderStyle, and GridColor. For more information, see Basic Formatting and Styling in the Windows Forms DataGridView Control.      You can use a DataGridView control to display data with or without an underlying data source. Without specifying a data source, you can create columns and rows that contain data and add them directly to the DataGridView using the Rows and Columns properties. You can also use the Rows collection to access DataGridViewRow objects and the DataGridViewRow..::.Cells property to read or write cell values directly. The Item indexer also provides direct access to cells.      As an alternative to populating the control manually, you can set the DataSource and DataMember properties to bind the DataGridView to a data source and automatically populate it with data. For more information, see Displaying Data in the Windows Forms DataGridView Control.     When working with very large amounts of data, you can set the VirtualMode property to true to display a subset of the available data. Virtual mode requires the implementation of a data cache from which the DataGridView control is populated. For more information, see Data Display Modes in the Windows Forms DataGridView Control.      For additional information about the features available in the DataGridView control, see DataGridView Control (Windows Forms). The following provides direct links to common tasks.  How to: Add ToolTips to Individual Cells in a Windows Forms DataGridView Control , How to: Bind Data to the Windows Forms DataGridView Control , How to: Bind Data to the Windows Forms DataGridView Control Using the Designer , How to: Change the Type of a Windows Forms DataGridView Column Using the Designer , How to: Customize Data Formatting in the Windows Forms DataGridView Control , How to: Format Data in the Windows Forms DataGridView Control , How to: Set Default Cell Styles and Data Formats for the Windows Forms DataGridView Control Using the Designer , How to: Set Font and Color Styles in the Windows Forms DataGridView Control , Walkthrough: Creating a Master/Detail Form Using Two Windows Forms DataGridView Controls , Walkthrough: Validating Data in the Windows Forms DataGridView Control.     Although the DataGridView control replaces and adds functionality to the DataGrid control of previous versions, the DataGrid control is retained for both backward compatibility and future use if you choose. For more information, see Differences Between the Windows Forms DataGridView and DataGrid Controls.      The DataGridView control inherits both the ContextMenu and ContextMenuStrip properties from Control, but supports only the ContextMenuStrip property. Using the ContextMenu property with the DataGridView control has no effect.

505.2.1.2. use a simple data-bound control to display a single data element on a Windows Form, --

505.2.1.3. implement complex data binding to integrate data from multiple sources, --

505.2.1.4. navigate forward and backward through records in a DataSet in Windows Forms, --

505.2.1.5. define a data source by using a DataConnector component, --

505.2.1.6. create data forms by using the Data Form Wizard --

 

505.2.2. Manage connections and transactions. --

 -- This objective may include but is not limited to:

505.2.2.1. Configure a connection to a database by using the Connection Wizard, --

505.2.2.2. configure a connection to a database by using Server Explorer, --

505.2.2.3. configure a connection to a database by using the Connection class, --

505.2.2.4. connect to a database by using specific database Connection objects, --

505.2.2.5. handle exceptions when connecting to a database, --

505.2.2.6. perform transactions by using the Transaction object --

 

505.2.3. Create, add, delete, and edit data in a connected environment. --

 -- This objective may include but is not limited to:

505.2.3.1. Retrieve data by using a DataReader object, --

505.2.3.2. build SQL commands in Server Explorer, --

505.2.3.3. build SQL commands in code, --

505.2.3.4. create parameters for a Command object, --

505.2.3.5. perform database operations by using a Command object, --

505.2.3.6. retrieve data from a database by using a Command object, --

505.2.3.7. perform asynchronous operations by using a Command object --

 

505.2.4. Query data from data sources by using LINQ  --

 -- This objective may include but is not limited to:

505.2.4.1. LINQ to SQL, -- LINQ to SQL provides a runtime infrastructure for managing relational data as objects without losing the ability to query. Your application is free to manipulate the objects while LINQ to SQL stays in the background tracking your changes automatically.

505.2.4.2. LINQ to Objects, --

505.2.4.3. LINQ to Microsoft ADO.NET, -- The .NET Client library supports data service queries using language-integrated queries (LINQ) in addition to querying a data service in a call to DataServiceContext.CreateQuery as shown under the heading Microsoft Data Web Client. For more information about LINQ, see LINQ to Entities. The client library handles the details of mapping the LINQ statement to a URI in the target data service and retrieving the specified resources as .NET objects.

505.2.4.4. LINQ to XML -- .NET Language-Integrated Query for XML (LINQ to XML) allows XML data to be queried by using the standard query operators as well as tree-specific operators that provide XPath-like navigation through descendants, ancestors, and siblings. It provides an efficient in-memory representation for XML that integrates with the existing System.Xml reader/writer infrastructure and is easier to use than W3C DOM. There are three types that do most of the work of integrating XML with queries: XName, XElement and XAttribute.

 

505.2.5. Create, add, delete, and edit data in a disconnected environment. --

 -- This objective may include but is not limited to:

505.2.5.1. Create a DataSet graphically, --

505.2.5.2. create a DataSet programmatically, --

505.2.5.3. add a DataTable to a DataSet, --

505.2.5.4. add a relationship between tables within a DataSet, --

505.2.5.5. navigate a relationship between tables, --

505.2.5.6. merge DataSet contents, --

505.2.5.7. copy DataSet contents, --

505.2.5.8. create a typed DataSet, create DataTables, --

505.2.5.9. manage data within a DataTable, --

505.2.5.10. create and use DataViews, --

505.2.5.11. represent data in a DataSet by using XML, --

505.2.5.12. use the OleDbDataAdapter object to access an ADO Recordset or Record, --

505.2.5.13. generate DataAdapter commands automatically by using the CommandBuilder object, --

505.2.5.14. generate DataAdapter commands programmatically, --

505.2.5.15. populate a DataSet by using a DataAdapter, --

505.2.5.16. update a database by using a DataAdapter, --

505.2.5.17. resolve conflicts between a DataSet and a database by using a DataAdapter, --

505.2.5.18. respond to changes made to data at the data source by using DataAdapter events, --

505.2.5.19. perform batch operations by using DataAdapters --

 

505.2.6. Manage XML by using the XML Document Object Model (DOM). --

 -- This objective may include but is not limited to:

505.2.6.1. Read XML data into the DOM, --

505.2.6.2. modify an XML document by adding and removing nodes, --

505.2.6.3. modify nodes, --

505.2.6.4. write data in an XML format by using the DOM, handle DOM events --

 

505.2.7. Read, write, and validate XML by using the XmlReader class and the XmlWriter class. --

 -- This objective may include but is not limited to:

505.2.7.1. read XML data, --

505.2.7.2. elements, --

505.2.7.3. and attributes, --

505.2.7.3. read specific elements or attributes, --

505.2.7.4. use XmlTextReader, -- XmlTextReader Class represents a reader that provides fast, non-cached, forward-only access to XML data.    In the .NET Framework version 2.0 release, the recommended practice is to create XmlReader instances using the XmlReader..::.Create method. This allows you to take full advantage of the new features introduced in this release. For more information, see Creating XML Readers.      XmlTextReader provides forward-only, read-only access to a stream of XML data. The current node refers to the node on which the reader is positioned. The reader is advanced using any of the read methods and properties reflect the value of the current node.      This class implements XmlReader and conforms to the W3C Extensible Markup Language (XML) 1.0 and the Namespaces in XML recommendations. XmlTextReader provides the following functionality:   * Enforces the rules of well-formed XML.     * XmlTextReader does not provide data validation.     * Checks that DocumentType nodes are well-formed. XmlTextReader checks the DTD for well-formedness, but does not validate using the DTD.      For nodes where NodeType is XmlNodeType.EntityReference, a single empty EntityReference node is returned (that is, the Value property is String.Empty).     The actual declarations of entities in the DTD are called Entity nodes. When you refer to these nodes in your data, they are called EntityReference nodes.      * Does not expand default attributes.     Because the XmlTextReader does not perform the extra checks required for data validation, it provides a fast well-formedness parser.      To perform data validation, use a validating XmlReader. For more information, see Validating XML Data with XmlReader.      To read XML data from an XmlDocument, use XmlNodeReader.     XmlTextReader throws an XmlException on XML parse errors. After an exception is thrown the state of the reader is not predictable. For example, the reported node type may be different than the actual node type of the current node. Use the ReadState property to check whether a reader is in error state.      For further discussion on the XmlReader classes, see Reading XML with the XmlReader.      Security Considerations    The following are things to consider when using the XmlTextReader class.     * Exceptions thrown the XmlTextReader can disclose path information that you do not want bubbled up to the application. Your applications must catch exceptions and process them appropriately.     * DTD processing is enabled by default. Disable DTD processing if you are concerned about Denial of Service issues or if you are dealing with untrusted sources. Set the ProhibitDtd property to true to disable DTD processing.      If you have DTD processing enabled, you can use the XmlSecureResolver to restrict the resources that the XmlTextReader can access. You can also design your application so that the XML processing is memory and time constrained. For example, configure time-out limits in your ASP.NET application.     * XML data can include references to external resources such as a DTD file. By default external resources are resolved using an XmlUrlResolver object with no user credentials. You can secure this further by doing one of the following:   * Restrict the resources that the XmlTextReader can access by setting the XmlResolver property to an XmlSecureResolver object.   * Do not allow the XmlReader to open any external resources by setting the XmlResolver property to a null reference (Nothing in Visual Basic).      * XML data can contain a large number of attributes, namespace declarations, nested elements and so on that require a substantial amount of time to process. To limit the size of the input that is sent to the XmlTextReader, create a custom IStream implementation and supply it the XmlTextReader.    * The ReadValueChunk method can be used to handle large streams of data. This method reads a small number of characters at a time instead of allocating a single string for the whole value.    * By default general entities are not expanded. General entities are expanded when you call the ResolveEntity method.

505.2.7.5. XmlNodeReader, -- XmlNodeReader Class represents a reader that provides fast, non-cached forward only access to XML data in an XmlNode.     In the .NET Framework version 2.0, the recommended practice is to create XmlReader instances using the XmlReaderSettings class and the Create method. This allows you to take full advantage of all the new features introduced in the .NET Framework. For more information, see Creating XML Readers.     The XmlNodeReader has the ability to read an XML DOM subtree. This class does not support document type definition (DTD) or schema validation. To perform data validation, use a validating XmlReader object.      For further discussion on the XmlReader classes, see Reading XML with the XmlReader.

505.2.7.6. XmlValidatingReader, -- XmlValidatingReader Class represents a reader that provides document type definition (DTD), XML-Data Reduced (XDR) schema, and XML Schema definition language (XSD) validation.   NOTE: This API is now obsolete.   XmlValidatingReader implements the XmlReader class and provides support for data validation. Use the Schemas property to have the reader validate by using schema files that are cached in an XmlSchemaCollection. The ValidationType property specifies what type of validation the reader should perform. Setting the property to ValidationType.None creates a non-validating reader.      XmlValidatingReader throws an XmlException on XML parse errors. After an exception is thrown the state of the reader is not predictable. For example, the reported node type may be different than the actual node type of the current node. Use the ReadState property to check whether a reader is in error state.     The XmlValidatingReader class is obsolete in .NET Framework version 2.0. You can create a validating XmlReader instance by using the XmlReaderSettings class and the Create method. For more information, see Validating XML Data with XmlReader.

505.2.7.7 and XmlWriter classes -- XmlWriter Class represents a writer that provides a fast, non-cached, forward-only means of generating streams or files containing XML data.     Although the Microsoft .NET Framework includes the XmlTextWriter class, which is an implementation of the XmlWriter class, in the 2.0 release, it is recommended that you use the Create method to create new XmlWriter objects. The Create method allows you to specify the features to support on the created XmlWriter object, and it also allows you to take full advantage of the new features introduced in the 2.0 release.     When you use the XmlWriter methods to output XML, the elements and attributes will not be written until you call the Close method. For example, if you are using the XmlWriter to populate an XmlDocument, until you close the XmlWriter, you will not be able to observe the written elements and attributes in the target document.     For more information about the XmlWriter class, see Writing XML with the XmlWriter.

Part I of Larry West’s Study Guide for Exam 70-505: TS: Microsoft .NET Framework 3.5, Windows Forms App. Dev.

This is a work in progress to help me (and now you) to study for the 70-505 exam:

I had to split it up because Spaces has such a tiny limit on the maximum amount of text one can have.

 

 

Skills Being Measured     This exam measures your ability to accomplish the technical tasks listed below.

505.1.0.. Creating a UI for a Windows Forms Application by Using Standard Controls  --

505.1.1 Add and configure a Windows Form. --

 -- This objective may include but is not limited to:

505.1.1.1. Add a Windows Form to a project at design time. --

505.1.1.2. Configure a Windows Form to control accessibility, --

505.1.1.3. appearance, --

505.1.1.4. behavior, --

505.1.1.5. configuration, --

505.1.1.6. data, --

505.1.1.7. design, --

505.1.1.8. focus, --

505.1.1.9. layout, --

505.1.1.10. style, and other functionality --

 

505.1.2. Manage control layout on a Windows Form. --

 -- This objective may include but is not limited to:

505.1.2.1. Group and arrange controls by using the Panel control, -- Content Model: Panel enforces a strong content model for child content. The Children collection of a Panel element can only consist of UIElement objects. Adding a UIElement child to a Panel implicitly adds it to the UIElementCollection for the Panel element.      WPF provides a comprehensive suite of derived Panel implementations, enabling many complex layouts. If you want to implement new layout containers, use the MeasureOverride and ArrangeOverride methods. For a demonstration of how to use these methods, see Create a Custom Content-Wrapping Panel Sample.      Panel elements do not receive mouse or stylus events if a Background is not defined. If you need to handle mouse or stylus events but do not want a background for your Panel, use Transparent.      Panel elements do not receive focus by default. To compel a panel element to receive focus, set the Focusable property to true.

505.1.2.2. GroupBox control, -- Content Model: GroupBox is a HeaderedContentControl. Its content property is Content and its header property is Header. For more information on the content model for GroupBox, see Controls Content Model Overview. For a complete sample, see GroupBox Sample.

505.1.2.3. TabControl control, -- The TabControl is useful for minimizing screen space usage while allowing an application to expose a large amount of data. A TabControl consists of multiple TabItem objects that share the same screen space. Only one TabItem in a TabControl is visible at a time. When a user selects the tab of a TabItem, the contents of that TabItem become visible and the contents of the other TabItem objects are hidden.      Content Model: TabControl is a ItemsControl. Its content properties are Items and ItemsSource. For more information on the content model for TabControl, see Controls Content Model Overview.

505.1.2.4. FlowLayoutPanel control, -- The FlowLayoutPanel control arranges its contents in a horizontal or vertical flow direction. Its contents can be wrapped from one row to the next, or from one column to the next. Alternatively, its contents can be clipped instead of wrapped.     You can specify the flow direction by setting the value of the FlowDirection property. The FlowLayoutPanel control correctly reverses its flow direction in right-to-left (RTL) layouts. You can also specify whether the contents of the FlowLayoutPanel control are wrapped or clipped by setting the value of the WrapContents property.      Any Windows Forms control, including other instances of FlowLayoutPanel, can be a child of the FlowLayoutPanel control. With this capability, you can construct sophisticated layouts that adapt to your form's dimensions at run time.      Docking and anchoring behaviors of child controls differ from the behaviors in other container controls. Both docking and anchoring are relative to the largest control in the flow direction. For more information, see How to: Anchor and Dock Child Controls in a FlowLayoutPanel Control.

505.1.2.5. and TableLayoutPanel control -- The TableLayoutPanel control arranges its contents in a grid. Because the layout is performed both at design time and run time, it can change dynamically as the application environment changes. This gives the controls in the panel the ability to proportionally resize, so it can respond to changes such as the parent control resizing or text length changing due to localization.      Any Windows Forms control can be a child of the TableLayoutPanel control, including other instances of TableLayoutPanel. This allows you to construct sophisticated layouts that adapt to changes at runtime.      The TableLayoutPanel control can expand to accommodate new controls when they are added, depending on the value of the RowCount, ColumnCount, and GrowStyle properties. Setting either the RowCount or ColumnCount property to a value of 0 specifies that the TableLayoutPanel will be unbound in the corresponding direction.     You can also control the direction of expansion (horizontal or vertical) after the TableLayoutPanel control is full of child controls. By default, the TableLayoutPanel control expands downward by adding rows.      If you want rows and columns that behave differently from the default behavior, you can control the properties of rows and columns by using the RowStyles and ColumnStyles properties. You can set the properties of rows or columns individually.      The TableLayoutPanel control adds the following properties to its child controls: Cell, Column, Row, ColumnSpan, and RowSpan.      You can merge cells in the TableLayoutPanel control by setting the ColumnSpan or RowSpan properties on a child control.      To set the Cell, Column, Row, ColumnSpan, and RowSpan properties at run time, use the SetCellPosition(), SetColumn(), SetRow(), SetColumnSpan(), and SetRowSpan() methods.      To read the Cell , Column , Row , ColumnSpan , and RowSpan properties at run time, use the GetCellPosition() , GetColumn() , GetRow() , GetColumnSpan() , and GetRowSpan() methods.     The docking behavior of child controls is the same as other container controls.      The anchoring behavior of child controls in a TableLayoutPanel differs from the behavior in other container controls. If the value of the child control's Anchor property is set to Left or Right, the control will be placed against the left or right border of the cell, at a distance that is the sum of the control's Margin property and the panel's Padding property. If both the Left and Right values are set, the control will be sized to the width of the cell, with the Margin and Padding values taken into account. The behavior for Top and Bottom anchoring is analogous. For more information, see How to: Anchor and Dock Child Controls in a TableLayoutPanel Control.      If you need a child control to mimic the default anchoring behavior in other container controls, you can adjust the Margin and Padding properties to maintain a constant distance between the control's border and the cell's border.      Setting the values of both the Column and Row properties of a child control to -1 will cause the control to be moved to the first empty cell in the TableLayoutPanel control. The empty cell will be chosen in a search that proceeds from left to right and from top to bottom. This order is dependent on the culture, so it will behave correctly in right-to-left (RTL) layouts.   See also How to: Align and Stretch a Control in a TableLayoutPanel Control, How to: Edit Columns and Rows in a TableLayoutPanel Control, How to: Span Rows and Columns in a TableLayoutPanel Control, and Walkthrough: Arranging Controls on Windows Forms Using a TableLayoutPanel.

 

505.1.3 Add and configure a Windows Forms control. --

 -- This objective may include but is not limited to:

505.1.3.1. Use the integrated development environment (IDE) to add a control to a Windows Form or other container control of a project at design time, --

505.1.3.2. add controls to a Windows Form at run time, --

505.1.3.3. configure controls on a Windows Form at design time to optimize the UI, --

505.1.3.4. modify control properties --

 

505.1.4 Create and configure menus. --

 -- This objective may include but is not limited to:

505.1.4.1. Create and configure a MenuStrip component on a Windows Form, -- MenuStrip is the top-level container that supersedes MainMenu. It also provides key handling and multiple document interface (MDI) features. Functionally, ToolStripDropDownItem and ToolStripMenuItem work along with MenuStrip, although they are derived from ToolStripItem.      The following items are specifically designed to work seamlessly with both ToolStripSystemRenderer and ToolStripProfessionalRenderer in all orientations. They are available by default at design time for the MenuStrip control:  * ToolStripMenuItem    * ToolStripTextBox    * ToolStripComboBox      The MenuStrip control represents the container for the menu structure of a form. You can add ToolStripMenuItem objects to the MenuStrip that represent the individual menu commands in the menu structure. Each ToolStripMenuItem can be a command for your application or a parent menu for other submenu items.      Although MenuStrip replaces and adds functionality to the MainMenu control of previous versions, MainMenu is retained for both backward compatibility and future use if you choose.

505.1.4.2. change the displayed menu structure programmatically, --

505.1.4.3. create and configure the ContextMenuStrip component on a Windows Form -- ContextMenuStrip replaces ContextMenu. You can associate a ContextMenuStrip with any control, and a right mouse click automatically displays the shortcut menu. You can show a ContextMenuStrip programmatically by using the Show method. ContextMenuStrip supports cancelable Opening and Closing events to handle dynamic population and multiple-click scenarios. ContextMenuStrip supports images, menu-item check state, text, access keys, shortcuts, and cascading menus.      The following items are specifically designed to work seamlessly with both ToolStripSystemRenderer and ToolStripProfessionalRenderer in all orientations. They are available by default at design time for the ContextMenuStrip control:  * ToolStripMenuItem    * ToolStripSeparator    * ToolStripTextBox    * ToolStripComboBox      Shortcut menus are typically used to combine different menu items from a MenuStrip of a form that are useful for the user given the context of the application. For example, you can use a shortcut menu assigned to a TextBox control to provide menu items for changing the font of the text, finding text within the control, or Clipboard features for copying and pasting text. You can also expose new ToolStripMenuItem objects in a shortcut menu that are not located within a MenuStrip to provide situation-specific commands that are inappropriate for the MenuStrip to display.      Typically, a shortcut menu is displayed when a user clicks the right mouse button over a control or the form itself. Many visible controls, as well as the Form itself, have a Control..::.ContextMenuStrip property that binds the ContextMenuStrip class to the control that displays the shortcut menu. More than one control can use a ContextMenuStrip.      Set the ToolStripDropDownMenu..::.ShowCheckMargin property to true to add space to the left of a ToolStripMenuItem for a check mark that shows that the menu item is enabled or selected. The ToolStripDropDownMenu..::.ShowImageMargin property is set to true by default. Use this space to the left of the ToolStripMenuItem to display an image for that menu item.      Although ContextMenuStrip replaces and adds functionality to the ContextMenu control of previous versions, ContextMenu is retained for both backward compatibility and future use if so desired.

 

505.1.5 Create event handlers for Windows Forms and controls. --

 -- This objective may include but is not limited to:

505.1.5.1. Manage mouse and keyboard events within Windows Forms applications, --

505.1.5.2. create event handlers at run time to respond to system or user events dynamically, --

505.1.5.3. connect multiple events to a single event handler --

 

 

August 05

Some general thoughts about exam studying and other stuff.

If you are looking for my political ramblings, most of them are now at http://activerepublican.spaces.live.com
 
If you are doing research on me in order to offer me a high-paying job, you will likely come across references to a Larry West in Louisville who is active in the neo-nazi movement. Please be aware that he is a different person. Although I am interested in politics, I am not interested in THAT type of politics. I desire to have smaller government, not have the government take over everything which is what the national socialists believe in.
 
Lately, there have been a lot of people who come to this site via www.google.co.in (that's India's version of Google) searching for the word "braindumps". This is probably because of the joke braindump post I have for the joke certification MCITP: US History Major (see http://blogs.msdn.com/trika/archive/2008/05/30/what-the-hell.aspx - yes, I'm the "Certified since 1857" person mentioned in that Microsoft blog).
 
For those who use braindumps, I would urge you to kick the habit. You risk losing all your certifications. Now that I have fifteen, that is a lot for me to lose. Since you will someday probably have a lot of certifications also, it is best to wean yourself from braindumps as quickly as possible.
 
Here are my suggestions for studying (for less than the cost of a braindump!):
1. Write the "Skills being measured" section of the Preparation Guide on the top of 3" by 5" index cards (or similar size in your country) or larger if you can't write in a small font-size. I number each item in the "Skills being measured" in case my cards get out of order. The very act of writing the items will help instill them in your head. That way, if you get a question with an answer mentioning a skill that you remember writing down, and three answers that were not listed on the "skills being measured," you've got a free question (without really cheating!).
 
2. Since some exams have skills that are mentioned in other exams (for example, most 70-290 and 70-291 skills are also mentioned in 70-292), I try to mark down all exams that a skill is mentioned on. That way, if I was studying for 70-290, for example, and came across a 70-292 book on a clearance aisle, I would know immediately that I could use it for my exam. Most likely, this will occur with the "upgrade" exams, but it also occurs in cases such as the 70-643 exam having a topic on Hyper-V, which is also its own exam.
 
3. Then, do research on each of the topics, writing down information on your card. The very act of hand-writing it will help instill those items in your head. I have found that http://msdn2.microsoft.com and http://technet.microsoft.com are the best study sources. Why? Because when the original exam question creators created their questions, they didn't have third-party books and websites, they just had the Microsoft sites. Try to fill the front of the card with information. This may mean trying to figure out what items to list on skills where there are abundant documentation, and trying to find further information on items where documentation is scarce.
 
4. Use the search boxes on the msdn2 and technet sites, and you will likely get better responses than public search engines such as google, which unfortunately still mostly points to braindump sites (if anyone can find such sites so easily by searching the terms in the preparation guides, why can't Microsoft do so and shut them down, or at least ask google not to include them in their databases?). Sometimes you luck out and get the exact wording of the "skill" on a msdn or technet site. If that happens, study the heck out of that page.
 
5. Leave the back of your cards blank. As you go to seminars and Tech-Eds or watch web-casts (see http://www.microsoft.com/events/webcasts/calendar/monthview.aspx), you can add notes there, then compress the information onto the front of a new index card if you get a lot. (Remember, the very act of hand-writing the information will help you to learn it better - its called kinesthetic learning.) If one of your cards is blank (except for the name of the "skill"), you can know what topics to ask the presenters to talk about.
 
6. Carry the cards with you. If you are riding on a bus, waiting for a light to change, or standing in a queue, you could use that normally wasted time studying for your next exam.
 
7. If you still have mostly blank cards, visit your local library (if it carries up to date certification books) or bookstore, and peruse the books there, writing notes on your card as if you were listening to a lecture or reading on the Microsoft site. If you can afford a book, buy it, then pretend that you are an editor trying to find errors. This means going through each exercise in the book. By doing this, I was able to pass the 70-643 exam.
 
8. When writing down information regarding a skill, I always ask myself "If I was writing a question on this skill, what would I write about?" Try to get into the exam writers' heads. Some exam writers have blogs. If you can find them, read them as it will help you learn some of the things that are important to them and likely to be on the exam.
 
9. Don't take the exam until at least 95% of your cards are filled and you have studied them all for at least a week. It may take you several weeks to prepare the cards, versus several days to study the braindumps, but you are more likely to learn something usable in the real world than you would with a braindump.
 
Note: If you are studying for more than one exam at a time, use colo(u)red index cards, a different one for each exam. Walgreen's in the United States had such cards on sale the week I wrote this for only 19 cents per pack. [Each pack has 5 colors and 14 cards per color per pack -- you will need to buy several packages.] August is the best time in the US to buy things like this due to the "back-to-school sales."
 
If you have any other suggestions, please let me know and I will include them.
 
June 30

Yet another Certification

Well, I passed yet another certification exam last Friday, one that I hadn't ever planned on taking - 70-643: TS: Windows Server 2008 Applications Infrastructure, Configuring. [See http://www.microsoft.com/learning/en/us/exams/70-643.mspx]
And I passed with a score of 930, possibly my personal highest ever.
My studying tool was the upcoming Wiley book "MCTS: Windows Server 2008 Application Infrastructure Configuration Study Guide" (ISBN: 978-0-470-26170-5). All but about four questions were from stuff mentioned in this book (pretty good considering the Preparation Guide states "May include but is not limited to:" for everything), although my particular exam did not have any questions from chapter 11.
Yes, I said upcoming. I did some of the technical editing for this book, and it was my examination of most of the items with Technet and other Microsoft websites that I believe led me to such a good score. I would strongly recommend this book for anyone thinking about taking the exam.
 
If you know of any other publishers looking for someone to help edit their books, I am open to further contracts.
[For those counting, that makes 14 Microsoft certifications, including 8 MCTS's.]
May 27

MCITP: United States History Major

If you look at the Microsoft website listing the number of certified personnel (www.microsoft.com/learning/mcp/certified.mspx), on the site dated 20 May 2008 you will see a mention of:
MCITP: United States History Major    2
 
I think this is someone's idea of a joke, but it may be related to the blog: http://blogs.msdn.com/trika/archive/2008/03/25/back-in-the-saddle.aspx
 
For some reason, the MCP site is down, so I can't see if I am one of the two. I am the one who suggested the "Certified Since 1857" cap.
 
If you have more information about this, please let me know.
 
UPDATE: The certification is not on my MCP transcript, so it must be someone else. I just had a talk with a "Thomas Cornelius Tips" at Microsoft, who provides the best possible braindumps to whomever asks and admits that they used braindumps in their study for certification exams (his e-mail address is tctips@microsoft.com). He gave me a few questions from the new exam 70-666: Pro: United States History Major. Here they are:
 
Q1. The Panic of 1857 was caused by:
A. People realizing that it is no longer 1856.
B. A sudden downturn in the economy, caused by greedy financial institutions and problems with the nation's railroads
C. People starting to get upset that once again, they voted for someone from the two-party duopoly (Democrat and Whig) and made a determination that in 1860 they needed to elect someone from a third party.
D. People realizing that Bill Gates would not be born for another 98 years.
Answer: The real world answer is B, but Bob Barr hopes the answer is C and that history will repeat itself. However, since this is a Microsoft test, it would be wise to use the Microsoft answer -- therefore the answer is D.
 
Q2. What happened at Homestead High School in Sunnyvale, California in 1972? (Choose all that apply.)
A. Larry West won the District Math Competition, being the first person from nearby Monta Vista High School to do so.
B. Steve Jobs graduated from High School.
C. Upset that he couldn't defeat Mr. West in that math contest, Steve moved to Oregon and got an idea for a machine to take revenge on Mr. West by confusing his mind. He called it the "personal confuser," later changed to "personal computer" to hide its real intent.
Answer: A and B are true -- I don't know about C.
 
Q3. Why did the Wright Brothers fly their plane at Kitty Hawk?
A. To get frequent flyer footage.
B. So that Ohio couldn't claim "first in flight."
C. Microsoft Streets and Trips gave them wrong directions to Toledo.
D. Microsoft Flight Simulator wasn't available in Ohio at the time.
Answer: Ah, two answers with Microsoft in them, but since C criticizes Microsoft, the answer must be D.
 
[note: other questions will be inputted as I get free time to type them in.]
 
Note that Thomas has been replaced at Microsoft. From now on, if you want the greatest in braindumps, you need to e-mail Tammy Rikah (trikah-at-microsoft.com). Be sure to give her your MCP ID number.
 
P.S. A good site on this exam is available at http://blogs.msdn.com/trika/archive/2008/05/30/what-the-hell.aspx
 
April 09

Announcing a Brand New Blog!!!!

In order to turn this blog back into my certification helps and miscellaneous information, I am in the process of moving all of the Republican Conventions posting to http://ActiveRepublican.spaces.live.com. I will keep some things posted here as well in order to accomodate links from other sites, but most of it has been moved over.
I will continue over the next four years updating that site for the 2012 Jefferson County Republican Conventions, as well as anything else I want to say related to politics. In fact, there is a post there on the April JCREC meeting that is not posted here.
Hope you enjoy it, and my apologies for those interested in certification information that has had to put up with my interest in politics.
April 05

Exam 70-561 / 71-561 Study Sheet

Note: If your company is looking for a senior level employee, please see my resume at http://larrywest.spaces.live.com/blog/cns!2DC19A3B70481285!222.entry
Exam 70-561 / 71-561 Study Sheet

The following is taken from the “Skills being measured” section of the “Preparation Guide for Exam 70-561 -- TS: Microsoft .NET Framework 3.5, ADO.NET Application Development.” Most of the links are to articles on MSDN. As you may note, it is not complete. If you use this document in your studies, I ask you to submit to me some references to items that I do not have references for and/or improvements to existing references and comments (in italics) for each item.

This document may not be placed on any non-free or for-profit website without permission.

 

Skills measured by Exam 70-561

F1. Connecting to Data Sources (12 percent)  (Exam 70-561)
F1.1. Manage connection strings. – May include but is not limited to:
   F1.1a. using the ConnectionStringBuilder; -- Uses the dbConnectionStringBuilder class to create syntactically correct connection strings.
   F1.1b. leveraging the ConfigurationManager; --  provides access to configuration files. Use WebConfigurationManager for web.config files.
   F1.1c. protecting the connection string; --  Use Windows Authentication, avoid UDLs, keep Persist Security Info at false, etc.
      Video:  #73 | Protecting Connection Strings and Other Configuration Information     View in VB or C#
   F1.1d. using Security Support Provider Interface (SSPI) or SQL Server authentication; --  SSPI allows an application to use various security models available on a computer or network without changing the interface to the security system
   F1.1e. correctly addressing the SQL Server instance;  -- 
   F1.1f. managing “User Instance” and AttachDBfilename  -- 

F1.2. Manage connection objects. – May include but is not limited to:
   F1.2a. managing connection state,  -- 
   F1.2b. managing connection pool;  --  Connecting to a data source can be time consuming. To minimize the cost of opening connections, ADO.NET uses an optimization technique called connection pooling, which minimizes the cost of repeatedly opening and closing connections.
   F1.2c. implementing persistent data connections;  -- 
   F1.2d. implementing Multiple Active Result Sets (MARS);  -- 
   F1.2e. encrypting and decrypting data  -- 

F1.3. Work with data providers.  – May include but is not limited to:  --  A .NET Framework data provider is used for connecting to a database, executing commands, and retrieving results.
   F1.3a. limitations,  -- 
   F1.3b. behaviors,  -- 
   F1.3c. performance,  -- 
   F1.3d. installation issues,  -- 
   F1.3e. deployment issues;  -- 
   F1.3f. ODBC,  -- 
   F1.3g. Microsoft OLE DB,  -- 
   F1.3h. SqlClient,  -- 
   F1.3i. managed providers,  -- 
   F1.3j. third-party providers,  -- 
   F1.3k. native providers  -- 

F1.4. Connect to a data source by using a generic data access interface. – May include but is not limited to:
   F1.4a. System.Data.Common namespace classes --  The System.Data.Common namespace contains classes shared by the.NET Framework data providers.

F1.5. Handle and diagnose database connection exceptions. – May include but is not limited to:
   F1.5a. implementing try/catch handlers  -- 

F2. Selecting and Querying Data (22 percent)  (Exam 70-561)

F2.1. Build command objects. – May include but is not limited to:
   F2.1a. building Parameters collections;  -- 
   F2.1b. using input and output parameters and return values;  -- 
   F2.1c. selecting an appropriate CommandType action;  -- 
   F2.1d. selecting an appropriate Execute method;  -- 
   F2.1e. using the CommandBuilder class;  -- 
   F2.1f. choosing appropriate CommandBehavior  -- 

F2.2. Query data from data sources. – May include but is not limited to:
   F2.2a. writing queries to solve assigned problems;  -- 
   F2.2b. implementing data paging;  -- 
   F2.2c. sorting, filtering, and aggregating data  -- 

F2.3. Retrieve data source data by using the DataReader. – May include but is not limited to:
   F2.3a. retrieving data from SELECT statements;  -- 
   F2.3b. retrieving data from stored procedures;  -- 
   F2.3c. working with multiple result sets  -- 

F2.4. Manage data by using the DataAdapter or the TableAdapter. – May include but is not limited to:
   F2.4a. retrieving data from SELECT statements;  -- 
   F2.4b. retrieving data from stored procedures;  -- 
   F2.4c. working with multiple result sets;  -- 
   F2.4d. working with JOIN products;  -- 
   F2.4e. creating updatable DataAdapters and TableAdapters;  -- 
   F2.4f. modifying TableAdapter Fill methods  -- 

F2.5. Execute an asynchronous query. – May include but is not limited to:
   F2.5a. handling asynchronous events  -- 

F2.6. Handle special data types. – May include but is not limited to:
   F2.6a. Binary Large Objects (BLOBs);  -- 
   F2.6b. Filestream,  -- 
   F2.6c. Spatial,  -- 
   F2.6d. Table Value Parameters  -- 

F2.7. Query data sources by using LINQ. – May include but is not limited to:
   F2.7a. extended method;  -- 
   F2.7b. CLR delegate;  -- 
   F2.7c. lambda expressions;  --  A lambda expression is a function without a name that calculates and returns a single value. Lambda expressions can be used wherever a delegate type is valid.  VB:  Dim
add1 = Function(num As Integer) num + 1
   F2.7d. classes of the System.LINQ.Expressions namespace  -- 

F2.8. Manage exceptions when selecting data. – May include but is not limited to:
   F2.8a. identifying and resolving syntax errors;  -- 
   F2.8b. security exceptions  -- 

F3. Modifying Data (24 percent)  (Exam 70-561)

F3.1. Manage transactions. – May include but is not limited to:
   F3.1a. selecting an appropriate transaction isolation level;  --  READ COMMITTED (shared locks held to avoid dirty reads) | READ UNCOMMITTED (no shared locks issued, no exclusive locks honored) | REPEATABLE READ (locks on all data used in query) | SERIALIZABLE (range lock)
READ COMMITTED is the default isolation level for the Microsoft SQL Server Database Engine. If an application must operate at a different isolation level, it can use the following methods to set the isolation level:
      * Run the SET TRANSACTION ISOLATION LEVEL statement.
      * ADO.NET applications that use the System.Data.SqlClient managed namespace can specify an IsolationLevel option by using the SqlConnection.BeginTransaction method.
       * Applications that use ADO can set the Autocommit Isolation Levels property.
       * When starting a transaction, applications using OLE DB can call ITransactionLocal::StartTransaction with isoLevel set to the desired transaction isolation level. When specifying the isolation level in autocommit mode, applications that use OLE DB can set the DBPROPSET_SESSION property DBPROP_SESS_AUTOCOMMITISOLEVELS to the desired transaction isolation level
      * Applications that use ODBC can set the SQL_COPT_SS_TXN_ISOLATION attribute by using SQLSetConnectAttr.

   F3.1b. participating in local transactions;  -- 
   F3.1c. participating in distributed transactions;  -- 
   F3.1d. using declarative transactions  -- 

F3.2. Manage data integrity. – May include but is not limited to:
   F3.2a. cascading updates or cascading deletes;  -- 
   F3.2b. auto number management;  -- 
   F3.2c. server-generated value management;  -- 
   F3.2d. client-side data validation;  -- 
   F3.2e. business rules,  -- 
   F3.2f. constraints  -- 

F3.3. Update data. – May include but is not limited to:
   F3.3a. update data by using stored procedures;  -- 
   F3.3b. update dataSets to data source;  -- 
   F3.3c. managing concurrency  -- 

F3.4. Manage exceptions when modifying data. – May include but is not limited to:
   F3.4a. resolve exceptions from data integrity, constraint, or referential integrity violations;  -- 
   F3.4b. data locking conflicts;  -- 
   F3.4c. data collision issues  -- 

F3.5. Transform data by using LINQ. – May include but is not limited to:
   F3.5a. aggregation operators;  --  computes a single value from a collection of values, such as sum or average.
   F3.5b. JOIN operator, QUERY operator, LIKE, etc.  -- 

F4. Synchronizing Data (15 percent)  (Exam 70-561)

F4.1. Monitor event notifications. – May include but is not limited to:
   F4.1a. implement notifications by using SqlDependency or SqlNotificationRequest  --  Represents a request for notification for a given command.

F4.2. Cache data. – May include but is not limited to:
   F4.2a. SqlCacheDependency, --  Establishes a relationship between an item stored in an ASP.NET application's Cache object and either a specific SQL Server database table or the results of a SQL Server 2005 query.
   F4.2b. Local Data Cache  --  provides a great way for you to quickly develop a download-only synchronization application.

F4.3. Manage update conflicts between online data and offline data.  -- 

F4.4. Partition data for synchronization.  -- 

F4.5. Implement Synchronization Services. – May include but is not limited to:
   F4.5a. SyncAgent, --  The SyncAgent object orchestrates synchronization.
   F4.5b. SyncTable, --  Represents the client settings for a table involved in synchronization.
   F4.5c. ClientSyncProvider, --  Abstracts a client synchronization provider that communicates with the client data store and shields the synchronization agent from the specific implementation of the data store.
   F4.5d. ServerSyncProvider, --  Abstracts a generic server synchronization provider that communicates with the server data store and shields the synchronization agent from the specific implementation of that data store.
   F4.5e. SyncAdapter  --  Represents a set of data commands that are used to obtain schema information and to retrieve and apply changes at the server database.

F5. Working with Disconnected Data (16 percent)  (Exam 70-561)

F5.1. Manage occasionally connected data.  --  An occasionally connected application is an application that uses data from a remote database but that might not always have access to the remote database.

F5.2. Programmatically create data objects. – May include but is not limited to:
   F5.2a. DataTable;  --  Represents one table of in-memory data.
   F5.2b. DataSet  --  Represents an in-memory cache of data.

F5.3. Work with untyped DataSets and DataTables. – May include but is not limited to:
   F5.3a. populating a DataSet or DataTable  -- 

F5.4. Expose a DataTableReader from a DataTable or from a DataSet. --  The DataTableReader obtains the contents of one or more DataTable objects in the form of one or more read-only, forward-only result sets.

F5.5. Work with strongly typed DataSets and DataTables.  --  You create a typed DataSet using the Data Source Configuration Wizard or the Dataset Designer.

F6. Object Relational Mapping by Using the Entity Framework (11 percent)  (Exam 70-561)

F6.1. Define and implement an Entity Data Model. – May include but is not limited to:
   F6.1a. mapping schemas and storage metadata; --  Building an application based on the Entity Data Model (EDM) requires writing three specifications using XML.
* The first specification uses conceptual schema definition language (CSDL) to declare and define the entities, associations, sets, and containers of the object model being designed. The programmable classes are built from this schema.
* The second specification in store schema definition language (SSDL) is metadata describing the storage container that persists data for applications built on the EDM.
* The third schema written in mapping specification language (MSL) maps the declarations in the CSDL file to tables described in the SSDL file.
Schemas and the mapping specification between them are written in XML.

   F6.1b. EDM Generator  --  a command-line used for working with the Entity Data Model (EDM). The EdmGen.exe tool can be used to do the following:
            * Generate the .csdl, .ssdl, and .msl model files that are used by the EDM.
            * Validate an existing model.
            * Produce a source code file that contains the object classes generated from a .csdl file.
            * Create a source code file that contains the view generated from the .ssdl, .csdl, and .msl files.

F6.2. Query data by using Object Services. – May include but is not limited to:
   F6.2a. querying data as objects and shaping results;  -- 
   F6.2b. working with objects;  -- 
   F6.2c. managing the Object Context;  -- 
   F6.2d. customizing objects  -- 

F6.3. Map data by using the Entity SQL Language. – May include but is not limited to:
   F6.3a. manually define mapping files;  -- 
   F6.3b. execute an Entity SQL Query by using EntityCommand --  Represents a command to be executed against an Entity Data Model (EDM). Execute methods include ExecuteNonQuery (executes the current command), ExecuteReader (executes the command and returns a data reader), and ExecuteScalar (executes the command, and returns the first column of the first row in the result set).

 F6.4. Access entity data by using the EntityClient Provider. -- May include but is not limited to:
   F6.4a. managing EntityConnection;  Represents a connection to an underlying data store.
   F6.4b. creating EntityCommand;  Represents a command to be executed against an Entity Data Model (EDM).
   F6.4c. executing a query by using EntityDataReader;  Reads a forward-only stream of rows from a data source.
   F6.4d. managing EntityTransaction  Specifies the transaction for an EntityCommand.

April 04

Exam 70-562 / 71-562 Study Sheet

Note: If your company is looking for a senior level employee, please see my resume at http://larrywest.spaces.live.com/blog/cns!2DC19A3B70481285!222.entry

 

Exam 70-562 / 71-562 Study Sheet

The following is taken from the “Skills being measured” section of the “Preparation Guide for Exam 70-562 -- TS: Microsoft .NET Framework 3.5, ASP.NET Application Development.” Most of the links are to articles on MSDN. As you may note, it is not complete. If you use this document in your studies, I ask you to submit to me some references to items that I do not have references for and/or improvements to existing references and comments (in italics) for each item.

This document may not be placed on any non-free or for-profit website or other format without permission.

 

Skills measured by Exam 70-562

F7. Configuring and Deploying Web Applications (10 percent)  (Exam 70-562)
F7.1. Configure providers. -- May include but is not limited to:
   F7.1a. personalization,  -- 
   F7.1b. membership, --  you can manage authentication using your own user database using ASP.NET forms authentication and ASP.NET membership.
   F7.1c. data sources,  -- 
   F7.1d. site map,  --  The simplest way to create a site map is to create an XML file named Web.sitemap that organizes the pages in the site hierarchically. This site map is automatically picked up by the default site-map provider for ASP.NET.
   F7.1e. resource,  -- 
   F7.1f. security  --

F7.2. Configure authentication, authorization, and impersonation. - May include but is not limited to:
   F7.2a.
Forms Authentication,  --  Forms authentication enables you to authenticate the user name and password of your users using a login form that you create. Unauthenticated requests are redirected to a login page, where the user provides credentials and submits the form. If the application authenticates the request, the system issues a ticket that contains a key for reestablishing the identity for subsequent requests.
   F7.2b.
Windows Authentication  --  Windows Authentication treats the user identity supplied by Microsoft Internet Information Services (IIS) as the authenticated user in an ASP.NET application. IIS provides a number of authentication mechanisms to verify user identity, including anonymous authentication, Windows integrated (NTLM) authentication, Windows integrated (Kerberos) authentication, Basic (base64 encoded) authentication, Digest authentication, and authentication based on client certificates.

F7.3. Configure projects, solutions, and reference assemblies. - May include but is not limited to:
   F7.3a. local assemblies,
   F7.3b. shared assemblies (GAC),
   F7.3c. Web application projects,
   F7.3d. solutions

F7.4. Configure session state by using Microsoft SQL Server, State Server, or InProc. - May include but is not limited to:
   F7.4a. setting the timeout;
   F7.4b. cookieless sessions

F7.5. Publish Web applications. - May include but is not limited to:
    F7.5a. FTP, File System, or HTTP from Visual Studio

F7.6. Configure application pools.

F7.7. Compile an application by using Visual Studio or command-line tools. - May include but is not limited to:
   F7.7a. aspnet_compiler.exe,  --  ASP.NET pre-compilation tool
   F7.7b. Just-In-Time (JIT) compiling,
   F7.7c. aspnet_merge.exe  --  The ASP.NET merge tool (Aspnet_merge.exe) lets you combine and manage assemblies that are created by the ASP.NET pre-compilation tool (Aspnet_compiler.exe).

F8. Consuming and Creating Server Controls (20 percent)  (Exam 70-562)

F8.1. Implement data-bound controls. -- May include but is not limited to:
   F8.1a. DataGrid,  --  A data bound list control that displays the items from data source in a table. The DataGrid control allows you to select, sort, and edit these items.
   F8.1b. DataList,  --  A data bound list control that displays items using templates. With property RepeatLayout, you can choose whether to show the list in table structure or in a steady stream.
   F8.1c. Repeater,  --  A data-bound list control that allows custom layout by repeating a specified template for each item displayed in the list.
   F8.1d. ListView,  --  Displays the values of a data source by using user-defined templates. The ListView control enables users to select, sort, delete, edit, and insert records.
   F8.1e. GridView,  --  Displays the values of a data source in a table where each column represents a field and each row represents a record. The GridView control enables you to select, sort, and edit these items.
   F8.1f. FormView,  --  Displays the values of a single record from a data source using user-defined templates. The FormView control allows you to edit, delete, and insert records.
   F8.1g. DetailsView,  --  Displays the values of a single record from a data source in a table, where each data row represents a field of the record. The DetailsView control allows you to edit, delete, and insert records.

   F8.1h. TreeView,  --  Displays hierarchical data, such as a table of contents, in a tree structure.
   F8.1i. DataPager  --  Provides paging functionality for data-bound controls that implement the IPageableItemContainer interface, such as the ListView control.

F8.2. Load user controls dynamically.

F8.3. Create and consume custom controls. -- May include but is not limited to:
   F8.3a. registering controls on a page,
   F8.3b. creating templated controls

F8.4. Implement client-side validation and server-side validation. -- May include but is not limited to:
   F8.4a. RequiredFieldValidator,  --  Makes the associated input control a required field.
   F8.4b. CompareValidator,  --  Compares the value entered by the user in an input control with the value entered in another input control, or with a constant value.
   F8.4c. RegularExpressionValidator,  --  Validates whether the value of an associated input control matches the pattern specified by a regular expression.
   F8.4d. CustomValidator,  --  Performs user-defined validation on an input control.
   F8.4e. RangeValidator  --  Checks whether the value of an input control is within a specified range of values.

F8.5. Consume standard controls. -- May include but is not limited to:
   F8.5a. Button,  --  Represents a Windows button control, which reacts to the ButtonBase..::.Click event.
   F8.5b. TextBox,  --  Represents a control that can be used to display or edit unformatted text.
   F8.5c. DropDownList,  --  Represents a control that allows the user to select a single item from a drop-down list.
   F8.5d. RadioButton,  --  Represents a radio button control.
   F8.5d. CheckBox,  --  Displays a check box that allows the user to select a true or false condition.
   F8.5e. HyperLink,  --  A control that displays a link to another Web page.
   F8.5f. Wizard,  --  Provides navigation and a user interface (UI) to collect related data across multiple steps.
   F8.5g. MultiView  --  Represents a control that acts as a container for a group of View controls.

F9. Working with Data and Services (17 percent)  (Exam 70-562)

F9.1. Read and write XML data. -- May include but is not limited to:
   F9.1a. XmlDocument,  --  Represents an XML document.
   F9.1b. XPathNavigator,  --  Provides a cursor model for navigating and editing XML data.
   F9.1c. XPathNodeIterator,  -- Provides an iterator over a selected set of nodes.
   F9.1d. XPathDocument,  --  Provides a fast, read-only, in-memory representation of an XML document using the XPath data model.
   F9.1e. XmlReader,  --  Represents a reader that provides fast, non-cached, forward-only access to XML data.
   F9.1f. XmlWriter,  --  Represents a writer that provides a fast, non-cached, forward-only means of generating streams or files containing XML data.
   F9.1g. XmlDataDocument,  --  Allows structured data to be stored, retrieved, and manipulated through a relational DataSet.
   F9.1h. XmlNamespaceManager  --  Resolves, adds, and removes namespaces to a collection and provides scope management for these namespaces.

F9.2. Manipulate data by using DataSet and DataReader objects.

F9.3. Call a Windows Communication Foundation (WCF) service or a Web service from an ASP.NET Web page. -- May include but is not limited to:
   F9.3a. App_WebReferences;  --  Contains reference contract files (.wsdl files), schemas (.xsd files), and discovery document files (.disco and .discomap files) defining a Web reference for use in an application. For more information about generating code for XML Web services, see Web Services Description Language Tool (Wsdl.exe).
   F9.3b. <system.serviceModel> configuration

F9.4. Implement a DataSource control. – May include but is not limited to:
   F9.4a. LinqDataSource,  --  Enables the use of Language-Integrated Query (LINQ) in an ASP.NET Web page through markup text to retrieve and modify data from a data object.
   F9.4b. ObjectDataSource,  --  Represents a business object that provides data to data-bound controls in multitier Web application architectures.
   F9.4c. XmlDataSource,  --  Represents an XML data source to data-bound controls.
   F9.4d. SqlDataSource  --  Represents an SQL database to data-bound controls.

F9.5. Bind controls to data by using data binding syntax.

 

F10. Troubleshooting and Debugging Web Applications (16 percent)  (Exam 70-562)

F10.1. Configure debugging and custom errors. – May include but is not limited to:
   F10.1a. <customErrors mode="Off|On|RemoteOnly" />,
   F10.1b. <compilation debug="true"/>

F10.2. Set up an environment to perform remote debugging.

F10.3 Debug unhandled exceptions when using ASP.NET AJAX. – May include but is not limited to:
   F10.3a. client-side Sys.Debug methods;  --  provides methods for displaying objects in readable form at the end of a Web page.
   F10.3b. attaching a debugger to Windows Internet Explorer

F10.4. Implement tracing of a Web application. – May include but is not limited to:
   F10.4a. Trace.axd,
   F10.4b. Trace=True on @Page directive,
   F10.4c. <trace enabled="true"/>

F10.5. Debug deployment issues. – May include but is not limited to:
   F10.5a. aspnet_regiis.exe;
   F10.5b. creating an IIS Web application;
   F10.5c. setting the .NET Framework version

F10.6. Monitor Web applications. – May include but is not limited to:
   F10.6a. health monitoring by using WebEvent,
   F10.6b. performance counters

F11. Working with ASP.NET AJAX and Client-Side Scripting (15 percent)  (Exam 70-562)

F11.1. Implement Web Forms by using ASP.NET AJAX. – May include but is not limited to: 
   F11.1a. EnablePartialRendering,
   F11.1b. Triggers,
   F11.1c. ChildrenAsTriggers,
   F11.1d. Scripts,
   F11.1e. Services,
   F11.1f. UpdateProgress,
   F11.1g. Timer,
   F11.1h. ScriptManagerProxy

F11.2. Interact with the ASP.NET AJAX client-side library. – May include but is not limited to:
   F11.2a. JavaScript Object Notation (JSON) objects;
   F11.2b. handling ASP.NET AJAX events

F11.3. Consume services from client scripts.

F11.4. Create and register client script. – May include but is not limited to:
   F11.4a. inline,
   F11.4b. included .js file,
   F11.4c. embedded JavaScript resource,
      Video:  #6 | JavaScript Intellisense Support in Visual Studio 200811 minutes, 23 seconds
   F11.4d. created from server code

F12. Targeting Mobile Devices (5 percent)  (Exam 70-562)

F12.1. Access device capabilities. – May include but is not limited to:
   F12.1a. working with emulators

F12.2. Control device-specific rendering. – May include but is not limited to:
   F12.2a. DeviceSpecific control;
   F12.2b. device filters;
   F12.2c. control templates

F12.3. Add mobile Web controls to a Web page. – May include but is not limited to:
   F12.3a. StyleSheet controls;
   F12.3b. List controls;
   F12.3c. Container controls

F12.4. Implement control adapters. – May include but is not limited to:
   F12.4a. App_Browsers;  --  Contains browser definitions (.browser files) that ASP.NET uses to identify individual browsers and determine their capabilities. For more information, see Browser Definition File Schema (browsers Element) and How to: Detect Browser Types in ASP.NET Web Pages.
   F12.4b. rendering by using ChtmlTextWriter or XhtmlTextWriter  -- 
      F12.4b1.  ChtmlTextWriter  --  Writes a series of cHTML-specific characters and text to the output stream of an ASP.NET server control. The ChtmlTextWriter class provides formatting capabilities that ASP.NET server controls use when rendering cHTML content to clients.

      F12.4b2.  XhtmlTextWriter  --  Writes Extensible Hypertext Markup Language (XHTML)-specific characters, including all variations of XHTML modules that derive from XTHML, to the output stream for an ASP.NET server control for mobile devices.

F13. Programming Web Applications (17 percent)  (Exam 70-562)

F13.1. Customize the layout and appearance of a Web page. – May include but is not limited to:
   F13.1a. CSS, 
   F13.1b. Themes and Skins,  --  ASP.NET themes are a collection of properties that define the appearance of pages and controls in your Web site. A theme can include skin files, which define property settings for ASP.NET Web server controls, and can also include cascading style sheet files (.css files) and graphics. By applying a theme, you can give the pages in your Web site a consistent appearance.
   F13.1c. Master Pages,  --  ASP.NET master pages enable you to create a page layout (a master page) that you can use with selected or all pages (content pages) in your Web site. Master pages can greatly simplify the task of creating a consistent look for your site.
 

   F13.1d. and Web Parts,  --  ASP.NET Web Parts is an integrated set of controls for creating Web sites that enable end users to modify the content, appearance, and behavior of Web pages directly from a browser.
   F13.1e. App_Themes,  --  A page theme is a theme folder with control skins, style sheets, graphics files and other resources created as a subfolder of the \App_Themes folder in your Web site.
   F13.1f. StyleSheetTheme  --  sets the cascading style sheet (CSS) that defines the appearance of the page in the Web browser.

 

F13.2. Work with ASP.NET intrinsic objects. – May include but is not limited to: 
   F13.2a. Request,  --  Gets the HttpRequest object for the requested page.
   F13.2b. Server,  --  You can use the Server object to access methods and properties on the server. Most of these methods and properties serve as utility functions.
   F13.2c. Application,  --  Gets the HttpApplicationState object for the current Web request.
   F13.2d. Session,  --  The Session object controls the installation process. It opens the Installer database, which contains the installation tables and data.
   F13.2e. Response,  --  Gets the HttpResponse object associated with the Page object. This object allows you to send HTTP response data to a client and contains information about that response. You can use the Response object to send output to the client.
   F13.2f. HttpContext  --  Encapsulates all HTTP-specific information about an individual HTTP request.

 

F13.3. Implement globalization and accessibility. – May include but is not limited to:
   F13.3a. resource files,  --  A resource file is an XML file that contains the strings that you want to translate into different languages or paths to images. The resource file contains key/value pairs. Each pair is an individual resource. Key names are not case sensitive. For example, a resource file might contain a resource with the key Button1 and the value Submit.
   F13.3b. culture settings,  --  In an ASP.NET Web page, you can set to two culture values, the Culture and UICulture properties. The Culture value determines the results of culture-dependent functions, such as the date, number, and currency formatting, and so on. The UICulture value determines which resources are loaded for the page.
   F13.3c. RegionInfo,  --  Contains information about the country/region.
   F13.3d. App_GlobalResources,  --  Folder containing resources (.resx and .resources files) that are compiled into assemblies with global scope. Resources in the App_GlobalResources folder are strongly typed and can be accessed programmatically. For more information, see ASP.NET Web Page Resources Overview.
   F13.3e. App_LocalResources,  --  Folder containing resources (.resx and .resources files) that are associated with a specific page, user control, or master page in an application For more information, see ASP.NET Web Page Resources Overview.
   F13.3f. TabIndex,  --  Use the TabIndex property to specify or determine the tab index of a Web server control on the Web Forms page. When you press the Tab key, the order in which the Web server controls receive focus is determined by the TabIndex property of each control.
   F13.3g. AlternateText ,  --  Sets or returns the alternate text to display when an image is not available for the device. The default value is an empty string ("").
   F13.3h. GenerateEmptyAlternateText,  --  Gets or sets a value indicating whether the control generates an alternate text attribute for an empty string value.
   F13.3i. AccessKey,  --  Use the AccessKey property to specify the keyboard shortcut for the Web server control. This allows you to navigate quickly to the control by pressing the ALT key and the key for the specified character on the keyboard.
   F13.3j. Label.AssociatedControlID  --  Gets or sets the identifier for a server control that the Label control is associated with.

F13.4. Implement business objects and utility classes. – May include but is not limited to:
   F13.4a. App_Code , --  Contains source code for utility classes and business objects (for example, .cs, .vb, and .jsl files) that you want to compile as part of your application. In a dynamically compiled application, ASP.NET compiles the code in the App_Code folder on the initial request to your application. Items in this folder are then recompiled when any changes are detected.
   F13.4b. external assemblies

F13.5. Implement session state, view state, control state, cookies, cache, or application state.
   F13.5a. session state,  --  Use ASP.NET session state to store and retrieve values for a user.
   F13.5b. view state,  --  View state is the method that the ASP.NET page framework uses to preserve page and control values between round trips. When the HTML markup for the page is rendered, the current state of the page and values that must be retained during postback are serialized into base64-encoded strings. This information is then put into the view-state hidden field or fields.
   F13.5c. control state,  -- 
   F13.5d. cookies,  --  A cookie is a small bit of text that accompanies requests and pages as they go between the Web server and browser. The cookie contains information the Web application can read whenever the user visits the site.
   F13.5e. cache,  -- 
   F13.5f. application state.  --  Application state is a data repository available to all classes in an ASP.NET application. Application state is stored in memory on the server and is faster than storing and retrieving information in a database. Unlike session state, which is specific to a single user session, application state applies to all users and sessions.

 

F13.6. Handle events and control page flow. – May include but is not limited to:
   F13.6a. page events,
   F13.6b. control events,
   F13.6c. application events, 

   F13.6d. and session events,  --  ASP.NET provides two events that help you manage user sessions: the Session_OnStart event, which is raised when a new session

begins, and the Session_OnEnd event, which is raised when a session is abandoned or expires.  Session events are specified in the Global.asax file for an ASP.NET application.
   F13.6e. cross-page posting;  --  Cross-page posting enables you to configure a button on an ASP.NET Web page to post the current page to a different page.
   F13.6f. Response.Redirect,  --  The Redirect method causes the browser to redirect the client to a different URL. The Redirect method of the Response object operates by sending a header to the client. This header causes the client to look to another URL location specified in the header. Because a header must come at the beginning of a document, it is not possible to place the Redirect method in a document with HTML code preceding it.
   F13.6g. Server.Transfer,  --  The Transfer method sends all of the information that has been assembled for processing by one .asp file to a second .asp file. Server.Transfer acts as an efficient replacement for the Response.Redirect method.
   F13.6h. IsPostBack,  --  Gets a value indicating whether the page is being loaded in response to a client postback, or if it is being loaded and accessed for the first time.
   F13.6i. setting AutoEventWireup  --  Boolean attribute that indicates whether events of a Web Forms page are autowired:  TRUE (default) if events for ASP.NET pages are automatically connected to event-handling functions; FALSE when event-autowiring is not activated.


F13.7. Implement the Generic Handler. 

March 30

The other Larry West of Louisville.

Someone googled this site with the phrase "Larry West" Louisville to get here. I decided to see what other sites came up to that search and to my surprise one of them was a list of neo-Nazi leaders. Please be assured that the Larry West of Louisville (actually Fern Creek) who writes this blog is NOT the Larry West of Louisville (actually Jeffersontown) who is on the neo-Nazi list.
Note: I have no way of checking the veracity of that list and my apologies to the other Larry West if he was wrongly put on that list.
 
February 25

Files added to SkyDrive

You should notice a link to something called "SkyDrive." It is a spaces feature that allows one to upload documents for others to download. I have never used this feature before, so I am not sure if it works.
There, you will find my "Guide to Parliamentary Procedure" as well as the Jefferson County Republican Party bylaws, the rules for the Precinct Convention and LD Caucuses, as well as a word document of my "How to Become a Republican Delegate, Part I".
If my font is too small for you, bring the document up in word, click ctrl-A (or Select All from the Edit menu), then choose Font from the Format menu, then choose the number for the font size you want.
A final bonus Excel file is a listing of all the results for all the Presidential Primaries I could find.
Let me know if you have problems downloading them.
If you don't have Microsoft Office, you can download the Word Viewer from here:
 
Someone pointed out to me that the bylaws state that everything has to be seconded by two people. Be aware of that when making motions requiring seconding.
 
Also, be sure that any resolutions you introduce are available in written form. In fact, I would suggest making several copies and find other people in other Legislative Districts to pass the same resolution. If any resolution passes at least five LDs, then that resolution is supposed to be presented at the County Convention.
See you on Saturday.
February 05

Number of Microsoft Certified Professionals Worldwide - “Classic” Certifications

This is an update from the Microsoft website dated Aug. 19, 2008. I split it because of MSN Spaces blog size limitations. Please contact me if you see any errors.

Microsoft Credential / Certification                 Exams Required
Mar. '07 /
27 June '07 / 9 Aug., '07 / 11 Sept., '07 / 2 Oct., '07 / Nov., '07  /  Jan. '08  / Mar. '08  / Apr. '08 / June '08 / Aug.'08 /
Microsoft Certified Application Developer (MCAD)     (70-310 or 70-320) and (70-305 or 70-306 or 70-315 or 70-316) and (70-229 or 70-230 or 70-234 or 70-235 or 70-305* or 70-306* or 70-315* or 70-316* or 70-330 or 70-340 or 70-431 or 74-135)
  65,583  /       72,263 /    73,658 /         73,905 /      74,925  /     75,325  /    78,326  /    80,547 /   81,218 /  82,725 / 84,080 /
Microsoft Certified Solution Developer (MCSD): Microsoft .NET      Multiple exams
  28,535  /       30,477 /    30,898 /         30,975 /      31,498  /     31,657  /   32,661  /     33,098 /   33,287 /  33,659 / 33,973 /
MCSD: Visual Studio 6.0                              Multiple exams
        ???  /       46,157 /    
46,157 /         46,157 /      46,163  /     46,163  /   46,181  /     46,181 /   46,181 /  46,181 / 46,181 /
Microsoft Certified Database Administrator (MCDBA)               (70-028 or 70-228), (70-029 or 70-229), ((70-067 and 70-068) or 70-215 or 70-290 or 70-291), and (70-015 or 70-019 or 70-155 or 70-175 or 70-216 or 70-293 or 70-305 or 70-306 or 70-310 or 70-315 or 70-316 or 70-320 or 70-526 or 70-528 or 70-529)

145,063  /     146,872 /  147,435 /       147,613 /     148,125  /   148,244  / 149,338  /   150,079 /150,347 /150,717 /151,245 /
Microsoft Certified Desktop Support Technician (MCDST)         70-271 and 70-272
  26,597  /       32,465 /    34,243 /         34,461 /       35,965  /     36,370  /   39,539  /     42,243 /   43,439 /  45,914 / 47,817 /
Microsoft Certified Systems Engineer (MCSE): Windows Server 2003      Multiple exams
  68,668  /       81,221 /    85,853 /         86,645 /       91,807  /     92.990  / 102,452  /   113,454 / 120,664 /127,610 /133,399 /
MCSE: Windows 2000                                            Multiple exams
286,736  /     287,814 /  288,111 /       288,166 /     288,484  /   288,563  / 289,150  /   289,842 / 290,183 /290,359 /290,425 /
MCSE: Windows NT 4.0                                         Multiple exams
        ???  /     395,737 /  395,746 /       395,746 /     395,749  /   395,752  / 395,769  /   395,778 / 395,786 /395,798 /395,807 /
Microsoft Certified Systems Engineer (MCSE): Messaging – Windows Server 2003       Multiple exams
        ???  /         7,431 /      7,815 /           7,883 /         8,285  /       8,397  /      9,116  /      9,719 /     9,980 /   10,364 / 10,632 /
MCSE: Messaging – Windows 2000                        Multiple exams
        ???  /         8,521 /      8,630 /           8,651 /         8,750  /       8,780  /      8,942  /      9,082 /     9,142 /     9,186 /   9,226 /
Microsoft Certified Systems Engineer (MCSE): Security – Windows Server 2003       Multiple exams
        ???  /       10,622 /    11,411 /         11,529 /       12,338  /     12,518  /    14,018  /     15,063 /  15,635 /   16,510 / 17,258 /
MCSE: Security – Windows 2000                            Multiple exams
        ???  /         7,744 /      7,853 /           7,866 /         7,963  /       7,990  /      8,175  /       8,325 /    8,407 /     8,493 /   8,537 /
Microsoft Certified Systems Administrator (MCSA) – Windows Server 2003      Multiple exams
105,178  /     125,221 /  132,509 /       133,850 /     141,570  /    143,584  / 159,028  /   176,576 / 186,035 /197,568 /208,393 /
Microsoft Certified Systems Administrator (MCSA) – Windows 2000               70-215 and 70-218 and (70-210 or 70-270 or 70-620) and (70-089 or 70-214 or 70-216 or 70-224 or 70-227 or 70-228 or 70-235 or 70-236 or 70-244 or 70-262 or 70-284 or 70-299 or 70-350 or 70-431 or 70-445 or 70-500 or 70-501 or 70-620 or 70-624 or 70-630 or 70-631 or Security+ or (A+ and Net+) or MCDST)
144,068  /     145,283 /  145,582 /       145,620 /     145,896  /    145,958  / 146,581  /    147,280 / 147,612 /147,762 /147,810/
Microsoft Certified Systems Administrator (MCSA): Messaging – Windows Server 2003      Multiple exams
        ???  /       41,981 /    45,290 /         45,942 /       50,076  /      51,054  /   57,972  /      64,162 /   67,124 /  72,137 / 78,041 /
MCSA: Messaging – Windows 2000                       Multiple exams
        ???  /       29,484 /    29,648 /         29,681 /       29,832  /      29,879  /   30,203  /      30,465 /   30,593 /  30,632 / 30,684 /
Microsoft Certified Systems Administrator (MCSA): Security – Windows Server 2003      Multiple exams
        ???  /       12,766 /    13,645 /         13,802 /       14,704  /      14,409  /   16,575  /      17,794 /   18,493 /  19,476 / 20,326 /
MCSA: Security – Windows 2000                           Multiple exams
        ???  /         4,747 /      4,786 /           4,791 /         4,827  /        4,836  /     4,906  /        4,981 /     5,016 /    5,065 /  5,082 /
Microsoft Certified Trainer (MCT)
        ???  /            ??? /           ??? /              ???  /       12,096  /      12,409  /   12,924  /      13,137 /  13,137 /   12,154 / 12,910/
Microsoft Certified Learning Consultant (MCLC)
        ???  /            ??? /           ??? /              ???  /              50  /              51  /         52  /             54 /         56 /          53 /       53 /
Microsoft Certified Professional (MCP)                   Any exam except 70-058 and 70-536
        ???  / 2,127,227 / 2,149,006
  2,152,049 /  2,171,382 / 2,176,764 / 2,221,569 / 2,254,381/2,268,992/2,296,561/2,321,931/

Number of Microsoft Certified Professionals Worldwide – MCPD, MCITP, MCA

This is an update from the Microsoft website dated 19 Aug. 2008. I split it because of MSN Spaces blog size limitations. Please contact me if you see any errors.

Microsoft Credential / Certification                                  Exams Required
Microsoft Certified Professional Developer (MCPD)   [1,433 total in March 2007]

27 June  '07 / 9 Aug.  '07 / 11 Sept.  '07 / 2 Oct.  '07 / Nov.  '07 /  Jan. '08 / Mar. '08 / Apr. '08 / June '08 / Aug. '08 /
MCPD: Enterprise Application Developer (70-526, 70-528, 70-529, 70-536, and 70-549) or (combos)
        1,813 /         2,166 /           2,227  /        2,543
 /       2,639    3,424 / 4,101 /  4,438 / 5,023 /  5,420 /

MCPD: Web Developer                              (70-528, 70-536, and 70-547) or (MCAD and 70-551)
        1,144 /         1,577 /           1,640  /        2,023
  /       2,147    3,346 / 4,115 /  4,539 / 5,516 /  6,140 /

MCPD: Windows Developer                      (70-526, 70-536, and 70-548) or (MCAD and 70-552)
           560 /            647 /              663
  /           760  /          798    1,085 / 1,369 /  1,480 / 1,761 /  1,912 /

MCPD: Enterprise Applications Developer 3.5 

MCPD: Windows Developer 3.5

MCPD: ASP.NET Developer 3.5

 

Microsoft Certified IT Professional (MCITP)   [2,293 in March 2007]
27 June  '07 / 9 Aug.  '07 / 11 Sept.  '07 / 2 Oct.  '07 / Nov.  '07 /  Jan. '08 / Mar. '08 / Apr. '08 / June '08 / Aug. '08 /
MCITP:Enterprise Messaging Administrator     70-236, 70-237, and 70-238
            ??? /           153 /               182  /           463  /         
540     ??? /  1,468 /   1,727 / 2,236 /   2,748 /

MCITP:Database Developer                                 70-431, 70-441, and 70-442
        1,017 /        1,122 /            1,155  /        1,279  /
       1,316 / 1,547 /  1,742 /   1,841 / 2,053 /   2,241 /

MCITP:Database Administrator    (70-431, 70-443, and 70-444) or (MCDBA and 70-447)
        2,581 /        2,871 /            2,917  /        3,148  /
       3,232 / 3,908 /
  4,433 /   4,701 / 5,234 /   5,733 /

MCITP:Business Intelligence Developer              70-445 and 70-446
             71 /           102 /              106  /             167  /
         182 /    337 /     478 /     556 /    691 /      825 /

MCITP:Consumer Support Technician         70-620 and 70-623
            ??? /           103 /              116  /             179  /
         201    339 /     482 /     587 /    710 /      826 /

MCITP:Enterprise Support Technician       (70-620 and 70-622) or (MCDST and 70-621)
            ??? /           853 /              923  /          1,521  /     
 1,654 / 3,307 /
  3,696 /  4,263 /  5,266 /    6,001 /

MCITP:Enterprise Project Management with Microsoft Office Project Server 2007    70-632, 70-633, and 70-634
               0 /                0 /                  0  /                0  /            
 0      63 /     128 /     155 /    211 /       256 /

MCITP: Enterprise Administrator on Windows Server 2008       70-640, 70-642, 70-643, (70-620 or 70-624), and 70-647

               0 /                0 /                  0  /                0  /             0       0 /          ??? /        819 /  3,136 /    5,068 /

MCITP: Server Administrator on Windows Server 2008             70-640, 70-642, and 70-646

               0 /                0 /                  0  /                0  /             0      0   /      ??? /         540 /   1,736 /    2,771 /

MCITP: "United States History Major"                  ? /              ? /      ?  /           ? /             2 /          0 /          0 /

 

Microsoft Certified Architect (MCA)
Microsoft Certified Architect: Database      
??? /  10  /        10  /       13  /        13 /          13 /           18 /   ---------- /
Microsoft Certified Architect: Infrastructure 
?? / 
31  /        34  /       36  /        38 /          38 /           38 /   ---------- /
Microsoft Certified Architect: Messaging    
??? / 
61  /        61  /       61  /        61 /          61 /           65 /   ---------- /
Microsoft Certified Architect: Solutions       
??? /  50  /        52  /       66  /        73 /          73 /          77 /   ---------- /

Number of Microsoft Certified Professionals Worldwide - MCTS

This is an update from the Microsoft website dated 19 Aug. 2008. I split it because of MSN Spaces blog size limitations. Please contact me if you see any errors.

Microsoft Credential / Certification                                  Exams Required
27 June '07
/ 9
Aug. '07 / 11 Sept. '07 / 2 Oct. '07 / Nov. '07 /  Jan. '08 / Mar. '08 /   Apr. '08  /   June '08 /   Aug. '08 /
Microsoft Certified Technology Specialist (MCTS)   [21,081 total in March 2007]

MCTS: Business Desktop Deployment Solution Accelerator 2.0   74-139
            ??? /        1,925 /          1,931 /       1,944
 /      1,950     1,984 /     2,002 /
       ??? /       ??? /      ??? /

MCTS: BizTalk Server 2006: Custom Applications                  70-235
        1,075 /        1,228 /          1,253 /       1,394
/      1,434     1,713 /     1,983 /    2,096 /   2,332 /   2,508 /

MCTS: Microsoft Exchange Server 2007: Configuration          70-236
            ??? /          875 /              990 /       1,489
/      1,679        ??? /      4,729 /    5,631 /   7,399 /    9,069 /

MCTS: Microsoft Office Live Communications Server 2005    70-262
            ??? /          582 /              590          653
 /         662       727 /         750 /       764 /     783 /       820 /

MCTS: Microsoft Internet Security and Acceleration (ISA) Server 2006, Configuration    70-351 

            ??? /           ??? /              ??? /          ??? /          ??? /        ??? /           271 /       401 /     834 /    1,313 /

MCTS: Microsoft System Center Configuration Manager 2007: Configuring  70-400

            ??? /           ??? /              ??? /          ??? /          ??? /        ??? /           160 /       259 /     486 /      711 /

MCTS: Microsoft System Center Operations Manager 2007: Configuring       70-401

            ??? /           ??? /              ??? /          ??? /          ??? /        ??? /           205 /       339 /     503 /      631 /

MCTS: SQL Server 2005                                                            70-431
     16,968 /      18,336 /         18,537 /     19,849
    20,289  24,357 /    27,526 /   29,038 / 32,279 / 35,177 /

MCTS: SQL Server 2005: Business Intelligence Development  70-445
           ??? /           210 /              227 /          338 /         370       726 /      1,088 /    1,279 /   1,624 /   1,940 /

MCTS: Windows Mobile 5.0: Configuration                              70-500
           ??? /           109 /              117 /          154
/         178       288 /         392 /       442 /     504 /      567 /

MCTS: Windows Server 2003 Hosted Environments, Configuration, and Management  70-501 

            ??? /           ??? /              ??? /          ??? /          ??? /        ??? /           454 /          490 /         553 /         620 /
MCTS: .NET Framework 3.5 Windows Presentation Foundation Applications  70-502      73 /
     125 /      148 /

MCTS: .NET Framework 3.5 Windows Communication Foundation Applications   70-503                ??  /        150 /

MCTS: Microsoft .NET Framework 3.5, Windows Workflow Foundation Applications  70-504 54 / 82 /      112 /

MCTS: .NET Framework 3.5, Windows Forms Applications

MCTS: Microsoft Team Foundation Server: Configuration and Development       70-510 
           ??? /          189 /             195 /            216
/         226       272 /        304 /       315 /      344 /      388 /

MCTS: .NET Framework 2.0: Windows Applications               70-526 and 70-536
       4,271 /       4,960 /          5,075 /         5,769
/      5,988    8,051 /     9,639 /   10,445 / 11,797 / 12,834 /

MCTS: .NET Framework 2.0: Web Applications                       70-528 and 70-536
       6,690 /       8,155 /          8,392 /         9,762
 /    10,294  14,837 /   18,603 /   20,392 / 23,768 / 26,876 /

MCTS: .NET Framework 2.0: Distributed Applications             70-529 and 70-536
       2,500 /       2,955 /          3,030 /         3,420
 /      3,551    4,619 /     5,457 /    6,865 /   6,647 /   7,200 /

MCTS: Windows Mobile 5.0: Application Development           70-540
           ??? /            97 /               98 /            107
 /         114       160 /        193 /       231 /      307 /     337 /

MCTS: Windows SharePoint Services 3.0: Application Development   70-541
           ??? /          308 /             316 /            390 /         426        ??? /     1,314 /    1,527 /    1,897 /  2,196 /

MCTS: Microsoft Office SharePoint Server 2007: Application Development    70-542
           ??? /          342 /             370 /            538
/         575       957 /     1,627 /    1,852 /    2,394 /  2,874 /

MCTS: Microsoft Office 2007: Client Application Development  (also known as MCTS: Visual Studio Tools for the 2007 Microsoft Office System)   70-543
              0 /           ??? /              ??? /            ???           ???         19 /          ?? /
         ?? /

MCTS: Microsoft Virtual Earth 6.0, Application Development  70-544        18 /         19 /       25 /      31 /

MCTS: Microsoft Office Visio 2007, Application Development  70-545      31 /             34 /           46 /          64 /
MCTS: Microsoft Office Groove 2007, Configuring               70-555            35 /             42 /          64 /           92 /
MCTS: Microsoft Office PerformancePoint Server 2007, Applications  70-556   106 /
175 /     329 /     460 /

MCTS: Microsoft Forefront Client & Server – Configuration  70-557         235 /      294 /       422 /     488 /

MCTS: Windows Embedded CE 6.0 Applications                   70-571            ?? /            ?? /              ?? /         193 /

MCTS: Windows Vista: Configuration                                    70-620 or (MCDST and 70-621)
          ??? /        4,060 /           4,316 /         6,219
/      6,753  12,370 / 18,869 /
22,764 / 30,645 / 36,650 /

MCTS: Business Desktop Deployment with the BDD (formerly known as MCTS: Deploying and Maintaining Windows Vista Client and 2007 Microsoft Office System Desktops)  70-624
          ??? /           928 /              963 /         1,234 /      1,317    1,852 /   2,558 /
  3,081 /    3,741 /   4,276 /

MCTS: Windows Vista Connected Experience: Home Theater for Technologists  70-625      number not listed
MCTS: Vista Connected Experience: Home Theater for Sales Professionals   70-626      number not listed
MCTS: Microsoft Office SharePoint Server 2007: Configuration     70-630

          ??? /        1,608 /           1,696 /         2,144 /
      2,306    3,893 /   5,687 /  6,384 /    7,845 /   9,065 /

MCTS: Windows SharePoint Services 3.0: Configuration               70-631
          ??? /           980 /           1,040 /         1,383 /     
 1,478    2,273 /   3,187 /  3,618 /    4,416 /   5,089 /

MCTS: Managing Projects with Microsoft Office Project 2007     70-632
             0 /               0 /                  0 /                0 / 
0 / 244 [Dec. ‘07] /     806 /     938 /    1,189 /   1,411 /

MCTS: Enterprise Project Management with Microsoft Office Project Server 2007    70-633

             0 /               0 /                  0 /                0 /  0 /   92 [Dec. ‘07] /     413 /     465 /       563 /      662 /

MCTS: Office Communications Server 2007, Configuration         70-638

             0 /               0 /                  0 /                0 /             0 /       383 /     754 /     933 /     1,293 /   1,690 /

MCTS: Office Project Server 2007, Configuration                       70-639     15 /       27 /         53 /        78 /

MCTS: Windows Server 2008 Active Directory: Configuration    70-640 or (MCSA 2003 and 70-648) or (MCSE 2003 and 70-649)
             0 /               0 /                  0 /                0 /            
0 /     2,990 /  7,377 /
 9,394 /   12,873 /  16,397 /

MCTS: Windows Server 2008 Network Infrastructure: Configuration    70-642 or (MCSA 2003 and 70-648) or (MCSE 2003 and 70-649)
             0 /               0 /                  0 /                0 /            
0     2,990 /  7,380 /  9,575 /
    12,924 /   16,199 /

MCTS: Windows Server 2008 Application Infrastructure: Configuration  (also known as MCTS: Windows Server 2008 Application Platform: Configuration70-643 or (MCSE 2003 and 70-649)
             0 /               0 /                  0 /                0 /            
0     2,710 /  6,633 /  8,362 /
    11,270 /   14,057 /

.NET Framework 3.5 – Windows Communication Foundation Applications       /       65 /            109 /           150 /

January 29

Truthfulness of election results

(I apologize for those expecting more Certification help, but following politics and elections is a hobby of mine.)
If you compare my results with some of the other election results, you will note some differences. This is because some listings have more votes for certain candidates than others. My policy is to list the largest vote for a candidate listed by a major news media (except for Wyoming, where I had to include some blogs and minor media). Did anyone else notice that on Saturday evening, during Obama's victory speach, the number of votes for him went DOWN!
This was at 96%.
First it was Obama: 281,413; Clinton: 134,781; Edwards: 90,600
Next it was Obama: 281,365; Clinton: 134,798; Edwards: 90,602
Obama actually lost 48 votes!
Before our nation even thinks about electing our President using a national popular vote system, we need to verify that the voting totals are accurate.
January 23

Wyoming 2008 Republican Vote totals

Here, as best as I can determine, are the vote totals in the Wyoming Presidential Caucus (or Convention) for 2008:
If you see any errors, and/or can fill in the missing values, please let me know.
Wyoming Results County Seat Romney (8 del.) Thomp-son (3) Hunter (1) Hucka-bee Guiliani McCain Paul uncommitted  
Albany County Laramie 17 8 4 8 0 2 1    
Big Horn County Basin 15           6   11 votes others
Campbell County Gillette 15 6 5 3 2 6 19 2  
Carbon County Rawlins 1                
Converse County Douglas 15 6 9 5 1 7 0    
Crook County Sundance   1             27 voted
Fremont County Lander 1                
Goshen County Torrington 26 19 3 13 3 3 2   incl. "non-delegates" votes
Hot Springs County Thermopolis   1              
Johnson County Buffalo 4th place 1st place   tie 2nd 2 tie 2nd   1  
Laramie County Cheyenne 89 39 30   12   7   Paul won straw poll
Lincoln County Kemmerer 1                
Natrona County Casper 36 ?? 14 18 0 ?? 13 58  
Niobrara County Lusk   1              
Park County Cody 11 3 13 10 4 2 4    
Platte County Wheatland     1            
Sheridan County Sheridan 1st place   1       2nd place    
Sublette County Pinedale           1      
Sweetwater County Green River 1                
Teton County Jackson 24 10 0 0 0 12 7   53 voted
Uinta County Evanston 1                
Washakie County Worland               1  
Weston County Newcastle               1  

National 2008 Republican Presidential Vote totals:

Here is a list of the total Republican Primary votes for the 2008 election.
In NH I took the larger of 98% of the total and 100% (yes, some went DOWN!).
How I arrived at the Wyoming numbers will be in another post due to Live Spaces size limitation.
Let me know if you see any errors.
 
REPUBLICAN Totals IA 1/3 Cau. WY 1/5 Cau. NH 1/8 Pri. MI1/15 Pri. NV 1/19 Cau. SC 1/19 Pri. FL 1/29 Pri. ME 2/1 Cau. AL 2/5 Pri. AK 2/5 Cau. AZ 2/5 Pri. AR 2/5 Pri. CA 2/5 Pri. CO 2/5 Cau. CT 2/5 Pri. DE 2/5 Pri. GA 2/5 Pri. IL 2/5 Pri. MA 2/5 Pri. MN 2/5 Cau. MO 2/5 Pri.
John McCain 5,450,227 15,559 33 88,571 258,248 5,651 147,686 701,352 1,124 210,989 1,837 233,161 44,091 1,065,628 12,741 78,741 22,626 303,639 424,074 204,027 13,822 194,304
Mitt Romney 4,277,009 29,949 253 75,546 339,708 22,649 68,142 604,672 2,787 103,295 5,177 168,923 29,359 868,733 41,498 49,851 16,344 289,737 256,805 255,248 25,998 172,564
Mike Huckabee 2,812,380 40,841 57 26,859 139,951 3,616 132,943 262,538 308 230,608 2,596 44,487 130,541 291,103 8,866 10,591 7,706 326,069 147,626 19,168 12,519 185,627
Ron Paul 635,897 11,817 59 18,308 54,434 6,087 16,154 62,844 976 15,454 2,004 20,733 10,401 107,770 5,847 6,092 2,131 27,978 45,166 13,210 9,851 26,445
*Rudolph W. Giuliani 558,645 4,097 24 20,439 24,706 1,910 9,557 285,937 3 2,224 0 12,776 625 118,860 56 2,470 1,255 7,039 11,341 2,643 0 3,595
*Fred Thompson 278,450 15,904 94 28,859 32,135 3,521 69,651 22,651 7 1,929 0 8,909 600 46,728 59 543   3,378 7,100 942   3,106
Uncommitted 30,874 0 63   18,506       123 1,252     933     2,414     0 1,875   2,083
Alan L. Keyes 29,076 4   220       4,052 1 805   890   10,158 66 372   1,456 2,296   369 894
Other votes include:
9. *Duncan Hunter - 28,400 [524 in IA, 80 in WY, 1,225 in NH, 2,823 in MI, 890 in NV, 1,051 in SC, 2,843 in FL, ? in ME, 423 in AL, 991 in AZ, 13,001 in CA, 24 in CO, 138 in CT, 753 in GA, 263 in MA, 306 in MO, 954 in NY, 317 in OK, 738 in TN, 204 in UT, 0 in WV, 368 in LA, 484 in MD, on ballot in WA, WI, MS, OH, TX, OR]
10. *Thomas G. Tancredo - 7,782 [5 in IA, 80 in NH, 458 in MI, 121 in SC, 1,590 in FL, 95 in AL, 3,470 in CA, 7 in CO, ? in CT, 175 in DE, 323 in GA, 369 in IL, 155 in MA, 108 in MO, 190 in OK, 192 in TN, 108 in LA, ?? in WA, 336 in MD, on ballot in WI and MS]
11. John Cox - 2,904 [39 in NH, 83 in SC, 0 in ME, 2,781 in CA]
12. *Sam Brownback - 354 [354 in MI, 2,161 in CA, 0 in WV]
13. Barack Obama (D) - 1,800 [all NH]
14. Hillary Clinton (D) - 1,743 [all NH]
15. Jerry Ralph Curry - 993 [85 in AZ, 387 in OK, 521 in LA, 0 in WV]
16. *John Edwards (D) - 696 [all in NH]
17. James Creighton Mitchell, Jr. - 681 [30 in NH; 178 in AZ; 473 in IL]
18. Others / Scattered - 521 [227 in NH; 9 in ME (ME says one person got 7 votes, two others one each, but doesn't say who they are)]
19. Hugh Cort III - 484 [53 in NH, 88 in SC, 241 in AL, 56 in AZ, 46 in MO; on ballot in RI and TX]
20. Daniel Ayers Gilbert - 477 [36 in NH, 47 in AZ, 87 in MO, 124 in OK, 183 in LA]
21. John R. McGrath - 459 [all in AZ]
22. Frank Edward McEnulty - 302 [all in AZ]
23. Sean "CF" Murphy - 249 [all in AZ]
24. *Bill Richardson (D) - 191 [all in NH]
25. John Michael Fitzpatrick - 175 [all in AZ]
26. Jack Shepard - 146 [75 in NH, 71 in AZ]
27T. Stephen W. Marchuk - 124 [all in NH]
27T. Virgil L. R. Wiles - 124 [all in MO]
29. David Ruben - 97 [all in AZ]
30. Michael Burzynski - 93 [all in AZ]
31. Bob Leonard Forthan - 70 [all in AZ]
32. Michael Paul Shaw - 60 [all in AZ]
33. Rick Outzen - 49 [all in AZ]
34. Charles Skelley - 46 [all in AZ]
35. Cornelius Edward O'Connor - 45 [all in NH]
36T. Albert Howard - 44 [all in NH]
36T. Vernon Edward Wuensche - 44 [all in NH]
38. Vermin Supreme - 41 [all in NH]
39. Rhett R. Smith - 39 [all in AZ]
40. H. Neal "Cap" Fendig - 36 [13 in NH, 23 in SC]
41. Mark Klein - 19 [all in NH]
42. *Dennis J. Kucinich (D) - 13 [all in NH]
43. Randy Crow (D) - 7 [all in NH]
44T. *Joe Biden (D) - 5 [all in NH]
44T. Mike Gravel (D) - 5 [all in NH]
46. D. R. Hunter (D) - 3 [all in NH]
47. *Dal LaMagna (D) - 1 [all in NH]
48T. Eugene Robert Zarwell - 0 [all in WV]
48T. Hoa Tran - 0 [on ballot in TX]
 
* withdrawn from race
 
 
 

National 2008 Democratic Presidential Vote Totals:

Here is a (hopefully) complete list of all Democratic Primary Candidates and their vote totals so far:
The NH total are the larger of 98% complete and 100% complete (yes, some went DOWN!).
Let me know if you see any errors.
DEMOCRATS   IA 1/3 Cau. NH 1/8 Pri. MI 1/15 Pri. NV 1/19 Cau. SC 1/26 Pri. FL 1/29 Pri. AL 2/5 Pri. AK 2/5 Cau. AZ 2/5 Pri. AR 2/5 Pri. CA 2/5 Pri. CO 2/5 Cau. CT 2/5 Pri. DE 2/5 Pri. GA 2/5 Pri. ID 2/5 Cau. IL 2/5 Pri. KS 2/5 Cau. MA 2/5 Pri. MN 2/5 Cau. MO 2/5 Pri.
Barack Obama 10,084,007 93,862 105,007   4,805 295,214 575,794 302,684 6,471 167,525 78,898 1,858,072 79,490 179,349 51,124 700,366 16,880 1,301,954 27,172 511,887 141,527 405,473
Hillary Clinton 9,959,892 73,666 112,610 328,151 5,407 141,217 870,303 226,454 2,138 201,396 206,983 2,263,966 38,699 164,831 40,751 328,129 3,655 662,845 9,462 704,591 68,442 395,287
John Edwards 916,409 74,377 48,818   398 93,576 251,444 7,933 0 21,095 5,527 175,975 102 3,408 1,241 17,990 137 39,001 53 19,889 978 16,747
uncommitted 274,639 345   236,723 33     2,672 12   3,225   1,253 3,007     552   8 7,766 1,304 3,135
*Bill Richardson 96,728 5,278 13,249     727 14,986 1,046 0 2,576 776 18,081 18 439   1,880 0 3,486 1 1,840 81 690
*Dennis J. Kucinich 95,734 0 3,919 21,708 5 552 9,696   0 1,752 355 21,334 57 845 192 2,088 0 4,148 35 2,984 360 821
*Joe Biden 72,650 2,329 642     694 15,698 1,193 0   494 16,221 4 458 2,863 2,531 0 3,727   3,689 129 629
*Chris Dodd 28,140 58 205 3,853   247 5,474 529   440 253 6,959 0 906 170 900 0 1,155   819 76 249
Mike Gravel 20,043 0 404 2,363 0 241 5,274   0 298 310 7,034 17 272   947 0     1,072 0 438
Others:
10. Jim Rogers - 3,902 [all in OK]
11. Total write-ins - 2,460 [2,351 in NH, 109 in DC]
12. John McCain (R) - 932 votes [all in NH]
13. *Mitt Romney (R) - 611 votes [all in NH]
14. Sandy Whitehouse - 577 [all in AZ]
15. Edward Dobson - 356 [all in AZ]
16. Others/Scattered - 327 [270 in NH, 1 in NV, 53 in ND]
17. Frank Lynch - 313 [all in AZ]
18. Richard Grayson - 299 [all in AZ]
19. Karl Everett Krueger - 269 [all in AZ]
20. Ron Paul (R) - 267 [all in NH]
21. Richard E. Caligiuri - 254 [all in NH]
22. Mike Huckabee (R) - 243 [all in NH]
23T. William Campbell - 224 [all in AZ]
23T. Ralph Spelbring - 224 [al in MO]
25. Chuck See - 223 [all in AZ]
26. Libby Hubbard - 182 [all in AZ]
27. Michael Oatman - 172 [all in AZ]
28. *Rudolph W. Giuliani (R) - 161 [all NH]
29. Rich Lee - 153 [all in AZ]
30. Peter "Simon" Bollander - 141 [all in AZ]
31. Evelyn L. Vitullo - 122 [all in AZ]
32. Philiop Tanner - 118 [all in AZ]
33. Kenneth A. Capalbo - 108 [all NH]
34. Tish Haymer - 97 [all in AZ]
35. D. R. Hunter - 95 [all in NH]
36. Orion Daley - 87 [all in AZ]
37. Leland Montell - 84 [all in AZ]
38. Loti Gest - 72 [all in AZ]
39. William "Bill" Keefe - 51 [all NH]
40. Tom Laughlin - 47 [all NH]
41. Randolph "Randy" Crow - 37 [all NH]
42. Michael Skok - 32 [all NH]
43. Ole Savior - 31 [all NH]
44. William Charles Hughes - 22 [all NH]
45. Henry Hewes - 19 [all NH]
46. Tom Koos - 17 [all NH]
47. *Fred Thompson (R) - 15 [all NH]
48. Caroline P. Kileen - 11 [all NH]
49T. *Dal LaMagna - 8 [all NH]
49T. *Duncan Hunter (R) - 8 [all NH]
51. Stephen W. Marchuk (R) - 5 [all NH]
52. Alan Keyes (R) - 4 [all NH]
53. Albert Howard (R) - 1 [all NH] 
* withdrew
December 06

FYI

For those monitoring this blog, you might want to know that rather than adding new entries, lately I've been updating the entries that already exist.
I do plan on adding new entries as I get time, but I don't get much free time lately since I've taken on a second job doing income taxes for H&R Block.
 
In other news, if you haven't done all your holiday shopping yet, please consider my wife's site at http://pigeoncreekprimitives.com/generalstore.htm.
Tell her Larry sent you, and you may save a little bit. I recommend the cinnamon stars. They're pretty and they smell nice.
 
November 21

Personal Testimony and Call to the Ministry

I am in the process of applying for an adjunct teaching position at a Christian college. That college wants me to include a statement of my Christian testimony. If you have read my resume, then you know that I have a Master of Divinity Degree in Languages from Southeastern Baptist Theological Seminary. I used to have a bi-vocational resume for churches that are looking for part-time pastors. I happened upon this resume recently, and so I decided to retype the personal testimony portion for the college, and for you if you are interested in how I became a Christian.

One thing I find iconic is the line about waiting for the Lord’s timing. Didn’t He say something about a day being like a 1000 years?

I have removed some items out of identity theft concerns, but the rest is mostly verbatim from my 1981 bivocational  resume.

For you trivia buffs out there, the church I was a youth director at is the church that was mentioned in the movie “Norma Rae.” I was there during the time the movie was filmed (although the set used by the movie did not look like the real church at all).

 

Personal Testimony and Call to the Ministry:

     I was born on [date removed] in [place removed], but was raised in the San Jose, California area. I grew up thinking I was a Christian because I went to Sunday School (unvoluntarily) until about the second grade. However, I did not have a personal relationship with Jesus Christ. God, as far as I was concerned, was dead.

     Yet my early church training had some effect on my youth. I learned to abhor violence in all forms and never learned how to fight. This was fine when I lived in a nice neighborhood, but not when we moved to a rough one. My high school years were spent separated from others in fear of getting beat up, and I ended up very lonely. I spent most of my time studying.

     When I entered California Polytechnic in 1973 I decided to change but I didn’t know how. I soon became attracted to a woman in my Freshman Composition class. I thought a good “opening line” was to offer to look for errors in her term paper and have her correct mine. Her paper was on “How to Have a Personal Relationship with the Living God.” I didn’t understand what those two foreign phrases “personal relationships” and “living God” meant, but I did start thinking about Christianity. I picked up a free Gideon’s Bible and started reading it. Soon I found myself taking with God (and to my surprise, Him talking back!), and on January 19, 1974 (at 1:30pm) I invited Jesus Christ into my heart to be my Lord and Savior. I had found that “personal relationship with the Living God” which we all desperately need.

     At first my Christian growth was slow, but to learn more about God (and for obviously other reasons) I spent the summer of 1976 at Campus Crusade’s Institute of Biblical Studies in Hilo, Hawaii. In Hawaii I developed the desire and then conviction that the Lord wanted me to go into full-time Christian service. This calling first came on the evening of July 4, 1976 while at a service led by Dallas Theological Seminary professor Howard Hendricks.

     In my Senior year I felt God calling me to seminary, but I refused thinking it was just my pride, so I made plans to enter the Air Force to be a self-supporting missionary in some foreign country upon my graduation. I was not accepted due to defense cutbacks and I graduated from college without a job. I became a volunteer high school worker at Peninsula Bible Church in Palo Alto, California.

     In October, after finding a job as a computer analyst, I felt a strong calling from God to go east toward Connecticut. On faith, I left California in November. While driving across the country I again felt a call to go to seminary. I visited Dallas Seminary but God said to go on, so I did.

     On December 24, 1977, after passing through Wake Forest, North Carolina, my car was hit broadside totaling my car and giving me three broken ribs. While stuck in nearby Raleigh I began to feel God wanted me to stay there. During this time I went to a church that contained no one my age. A deacon suggested I try Forest Hills Baptist Church – the first Baptist church I had ever been in. I read of copy of the Baptist Faith and Message and found it agreed with my own theology more than the church I had been a member of. So I became a Southern Baptist. Two months later God directed me to go to Southeastern Seminary and this time I listened, entering in June, 1978. In July I got my first church job as a summer youth director for two months in Roanoke Rapids, North Carolina.

     The next year the Lord confirmed my earlier plans on becoming a missionary, but it was to be on His timing and not mine. To learn more about the Southern Baptist missions programs I spent the summer of 1979 church planting in Oregon. I didn’t see a church started, but I did see a love grow between me and Teresa Sue Bayes, a Southern Seminary student who was with the New Work program in another part of greater Portland. We became engaged at the end of the summer and were married on December 21, 1979 in her home town of Louisville, Kentucky where we now live.

     We finished our seminary education in August, 1980 and have been waiting since that time for the Lord to lead us where he wants us. We humbly ask you to pray for us in this matter.

My Theological Beliefs

I am in the process of applying for an adjunct teaching position at a Christian college. That college wants me to include a statement of my theological beliefs. If you have read my resume, then you know that I have a Master of Divinity Degree in Languages from Southeastern Baptist Theological Seminary. I used to have a bi-vocational resume for churches that are looking for part-time pastors. I happened upon this resume recently, and so I decided to retype the theological beliefs portion for them, and for you if you are interested in what I believe.

 

Note: If you know of a bivocational church looking for a minister, feel free to tell them about this blog as God directs. If it matters to you, I was licensed to the ministry on November 14, 1979 by Forest Hills Baptist Church, Raleigh, North Carolina.

 

My Theological Beliefs:

Baptist Faith and Message: I believe the Baptist Faith and Message is the creed closest to Biblical truth that man has developed (it certainly has the most scriptural references). I believe it entirely, including the statement that the Bible, both Old and New Testament, “has God for its author, salvation for its end, and truth, without any mixture of error, for its matter.” In fact, the only sentence I disagree with is the one stating that baptism is a prerequisite to the Lord’s Supper. While this may be a good rule, it is not backed up by any scripture and should not be forced upon people who are not baptized due to circumstances beyond their control (for example, some churches can’t baptize during winter months).

 

In matters not mentioned in (or different than) the Baptist Faith and Message, I hold the following viewpoints:

 

Baptism: The primary misunderstanding in some Baptist churches (and many churches as well) today is that baptism is just an initiating ceremony for joining a particular denomination. Nothing, I believe, is further from the truth. Instead, baptism is a celebration of the death and new life in Jesus Christ (not in the church, which is the purpose of church membership) that a new believer has. It is an outward confession of that person before other people that he is willing to follow God. I know of no scripture that requires a believer to be re-baptized if he has already been so. The proper order is that a person be saved first, then be baptized. Thus if a person wasn’t saved when he or she was baptized the first time (even if it was done in a Baptist church), only then should he or she be required to be reimmersed.

 

The Lord’s Supper: The Greek word eucharist also means thanksgiving, to give thanks for the “Lord’s death until he comes.” (I Cor. 11:26)  Since all people should give thanks for the Lord’s death (and his payment for our sins), I believe communion should be “open” and not “closed.” According to I Cor. 22:27-31, the only people who should not participate in the thanksgiving of communion are those who, after self-examination, do not have a proper relationship with God – a relationship worth giving thanks for. The church in most cases cannot and should not make this judgment about people.

 

Stewardship: Since we have become slaves (servants) of Christ (Rom. 6:22), all that we have, including our time and our money, belongs to God and not to us. We should go beyond just tithing our money and have the attitude stated in Acts 2:44-45, calling nothing that we have as our own. Even the very schedules of what we do should be completely by our Lord (James 4:15).

 

Gifts of the Spirit:  I believe the Holy Spirit still gives out spiritual gifts to help build up the body of Christ. I believe I have the gifts of teaching and administration, while others might have the gifts of mercy, service, etc., even tongues. No one person has all the gifts nor is any one gift possessed by all people. This is one reason why Christians are not to be independent, but to be interdependent upon one another. Again, the purpose of the gifts is to help build up the body of Christ, and if someone is not using his “gift” to help fellow Christians become closer to God or to help non-Christians to know Christ, then his gift is not a Spirit-given gift. This is especially true of some tongue-speakers who use their “gift” to break up churches, instead of building them up. I advocate silence in tongue-speaking unless it is to be done in a scriptural manner (see I Cor. 14:26-33) for edification.

 

Style of Teaching and Preaching: I teach/preach almost exclusively expository sermons, exegeting on what the Greek actually says. I preach mostly from the New King James Version, but occasionally use the New International Version, the King James Version, and the New American Standard Bible. I try to avoid preaching that merely “tickles the ears” (2 Tim. 4:3), which means I don’t preach just “salvation sermons,” but sermons which challenge the congregation to walk closer to God seven days of week and not just on Sundays. I believe in “how-to” (application-oriented) teaching. (Note: I haven’t actually preached a sermon in a church since the early 1980’s.)

 

Ministry of the Deacons: “Deacon” in the Greek means servant, not administrator. I wholeheartedly support the “deacon-flock” ministry plan, for in many respects a church is as strong as its deacons are. I believe that pastors should have a weekly in-depth Bible study with the deacons, who in turn would be Bible study leaders themselves (see 2 Tim. 2:2). Thus it is extremely important that only those people who are really interested in following God become deacons (I Tim. 3:8-9), not just those interested in the glory of the position. This is especially true in bi-vocational churches, in which the pastor has other duties to perform outside the church.

 

Church Extension: I believe in church growth and in starting new churches from home Bible fellowships (assuming the area is not “overchurched,”) as well as active witnessing and outreaches to the unchurched,  for a church cannot grow on “biological growth” alone, although ministry to the children of members is also important.

 

Prayer: Jesus once said “My house should be called a house of prayer.” (Luke 19:44) I believe in the power of prayer and I would like the church I pastor to be considered a house of prayer. Dialogue with God is important if a church is to follow Him. I would put an emphasis on this subject as I want the people God has given me to shepherd to be close to Him.

October 14

Resume comments

Note:  This resume {next blog entry} was created in October 2007. I may or may not have a later version written. Please contact me if you want a newer resume or want a version in Word 2003 or Word 2007.

I am mainly looking for a full-time senior-level (or upper mid-level) position, or a very high paying contract ($50/hour+ in Louisville, $110/hour+ in New York City area, $85/hour+ elsewhere); position must have health-care benefits.

Note to employment agents: I will not work with agents who pronounce Louisville with four syllables - if you get the name of my city so wrong, I wonder what else about the position you may have wrong. Unless the position is international, I will not work with agents who are not in the United States. I would be willing to work internationally, but I would require "sponsorship" and would need to get a passport.

I would be available to start work immediately.

For personal reasons, I would not be able to take positions with alcohol, gambling, or tobacco corporations.

NOTE: Suggestions on improving my resume would be greatly appreciated. 

 

 
Photo 1 of 2
More albums (1)
No list items have been added yet.