VISUAL STUDIO 2010 EXAMS STUDY GUIDE:
70-511 TS: Windows Applications Development with Microsoft® .NET Framework 4 [VS4.1-VS4.5]
70-515 TS: Web Applications Development with Microsoft® .NET Framework 4 [VS4.6-VS4.11]
70-513 TS: Windows Communication Foundation Development with Microsoft® .NET Framework 4 [VS4.12-VS4.17]
70-516 TS: Accessing Data with Microsoft® .NET Framework 4 [VS4.18-VS4.22]
70-518 Pro: Designing and Developing Windows® Applications using Microsoft .NET Framework 4 [VS4.23-VS4.27]
70-519 Pro: Designing and Developing Web Applications using Microsoft® .NET Framework 4 [VS4.28-VS4.32]
70-521: Upgrade: Transition your MCPD .NET Framework 3.5 Windows Developer Skills to MCPD .NET 4 Windows Applications Developer [VS4.1-VS4.5, VS4.12-VS4.27]
70-523: Upgrade: Transition your MCPD .NET Framework 3.5 Web Developer Skills to MCPD .NET Framework 4 Web Developer [VS4.6-VS4.22, VS4.28-VS4.32]
70-506 TS: Silverlight 4, Development
70-583 Pro: Designing and Developing Windows Azure Applications
= = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = =
70-511 TS: Windows Applications Development with Microsoft® .NET Framework 4
Skills being measured:
VS4.1. Building a User Interface by Using Basic Techniques (23%) [~17 questions] [Exam 70-511 and 70-521 only] -
VS4.1.1. Choose the most appropriate control class. [Exam 70-511 and 70-521 only] -
This objective may include but is not limited to:
VS4.1.1.1. evaluating design requirements and then selecting the most appropriate control based on those requirements; [Exam 70-511 and 70-521 only] -
VS4.1.1.2. recognizing when none of the standard controls meet requirements; [Exam 70-511 only] -
VS4.1.1.3. item controls, [Exam 70-511 and 70-521 only] - An ItemsControl is a type of Control that can contain multiple items, such as strings, objects, or other elements. Some examples of classes that inherit from this class are ListBox, Menu, and StatusBar. VS4.1.1.4. menu controls, [Exam 70-511 and 70-521 only] - Menus are used to group related actions or to provide contextual assistance: ContextMenu, Menu, ToolBar.
VS4.1.1.5. content controls [Exam 70-511 and 70-521 only] - The ContentControl can contain any type of common language runtime object (such as a string or a DateTime object) or a UIElement object (such as a Rectangle or a Panel). This enables you to add rich content to controls such as Button and CheckBox. Some examples of classes that inherit from this class are Label, Button, and ToolTip.
This objective does not include: designing a custom control
VS4.1.2. Implement screen layout by using nested control hierarchies. [Exam 70-511 and 70-521 only] -
This objective may include but is not limited to:
VS4.1.2.1. using panel-derived controls, [Exam 70-511 and 70-521 only] - WPF includes a group of elements that derive from Panel. These Panel elements enable many complex layouts. For example, stacking elements can easily be achieved by using the StackPanel element, while more complex and free flowing layouts are possible by using a Canvas.
The following table summarizes the available layout Panel elements.
Panel name | Description |
Canvas | Defines an area within which you can explicitly position child elements by coordinates relative to the Canvas area. |
DockPanel | Defines an area within which you can arrange child elements either horizontally or vertically, relative to each other. |
Grid | Defines a flexible grid area that consists of columns and rows. |
StackPanel | Arranges child elements into a single line that can be oriented horizontally or vertically. |
VirtualizingPanel | Provides a framework for Panel elements that virtualize their child data collection. This is an abstract class. |
WrapPanel | Positions child elements in sequential position from left to right, breaking content to the next line at the edge of the containing box. Subsequent ordering occurs sequentially from top to bottom or right to left, depending on the value of the Orientation property. |
For applications that require a layout that is not possible by using any of the predefined Panel elements, custom layout behaviors can be achieved by inheriting from Panel and overriding the MeasureOverride and ArrangeOverride methods. For an example, see Custom Radial Panel Sample.
VS4.1.2.2. attaching properties [Exam 70-511 and 70-521 only] - One purpose of an attached property is to allow different child elements to specify unique values for a property that is actually defined in a parent element. A specific application of this scenario is having child elements inform the parent element of how they are to be presented in the user interface (UI).
This objective does not include: items controls, control customization
VS4.1.3. Create and apply styles and theming. [Exam 70-511 only] -
This objective may include but is not limited to:
VS4.1.3.1. application-level styles, [Exam 70-511 only] - Resources defined by the Application object.
VS4.1.3.2. overriding styles, [Exam 70-511 only] -
VS4.1.3.3. style inheritance, [Exam 70-511 only] -
VS4.1.3.4. Generic.xaml, [Exam 70-511 only] - Theme-level dictionaries are stored in a subfolder named Themes. The files in the Themes folder correspond to themes. For example, you might have Aero.NormalColor.xaml, Luna.NormalColor.xaml, Royale.NormalColor.xaml, and so on. You can also have a file named generic.xaml. When the system looks for a resource at the themes level, it first looks for it in the theme-specific file and then looks for it in generic.xaml.
VS4.1.3.5. theming attributes [Exam 70-511 only] -
This objective does not include: data-grid view style sharing
VS4.1.4. Manage reusable resources. [Exam 70-511 only] -
This objective may include but is not limited to:
VS4.1.4.1. fonts, [Exam 70-511 only] -
VS4.1.4.2. styles, [Exam 70-511 only] - You can think of a Style as a convenient way to apply a set of property values to more than one element.
VS4.1.4.3. data sources, [Exam 70-511 only] -
VS4.1.4.4. images, [Exam 70-511 only] -
VS4.1.4.5. resource dictionaries, [Exam 70-511 only] - A typical Windows Presentation Foundation (WPF) application might have multiple user interface (UI) resources that are applied throughout the application. Collectively, this set of resources can be considered the theme for the application. Windows Presentation Foundation (WPF) provides support for packaging user interface (UI) resources as a theme by using a resource dictionary that is encapsulated as the ResourceDictionary class.
VS4.1.4.5. resource-only DLLs [Exam 70-511 only] -
VS4.1.5. Implement an animation in WPF. [Exam 70-511 only] -
This objective may include but is not limited to:
VS4.1.5.1. creating a storyboard; [Exam 70-511 only] - A Storyboard can be used to animate dependency properties of animatable classes (for more information about what makes a class animatable, see the Animation Overview). However, because storyboarding is a framework-level feature, the object must belong to the NameScope of a FrameworkElement or a FrameworkContentElement.
VS4.1.5.2. controlling timelines; [Exam 70-511 only] - A timeline represents a segment of time. It provides properties that enable you to specify the length of that segment, when it should start, how many times it will repeat, how fast time progresses in that segment, and more. Classes that inherit from the timeline class provide additional functionality, such as animation and media playback. The following are examples of some of the different types of specialized timelines available.
· Animations: An AnimationTimeline is a type of timeline that produces output values. When you associate an animation with a property, the animation updates the property's value as it plays, thereby "animating" it. For an introduction to animations, see Animation Overview. For information about the different ways to apply animations, see the Property Animation Techniques Overview.
· MediaTimelines: A MediaTimeline is a type of timeline that controls the playback of a media file.
· ParallelTimelines: A ParallelTimeline is a type of timeline that groups other timelines.
· Storyboards: A Storyboard is a special type of ParallelTimeline that provides object and property targeting information for the timelines it contains. For more information about Storyboard objects, see the Storyboards Overview.
For more information about using timelines, see the Animation Overview. For an introduction to the timing features of timelines, see the Timing Behaviors Overview.
VS4.1.5.3. controlling the behavior when the animation completes; [Exam 70-511 only] -
VS4.1.5.4. double, color, and point animations; [Exam 70-511 only] -
VS4.1.5.5. starting an animation from code and from XAML [Exam 70-511 only] -
This objective does not include: direct rendering updates, implementing key frame animations
VS4.2. Enhancing a User Interface by Using Advanced Techniques (21%) [~15 questions] [Exam 70-511 and 70-521 only] -
VS4.2.1. Manage routed events in WPF. [Exam 70-511 and 70-521 only] - A routed event is a type of event that can invoke handlers on multiple listeners in an element tree, rather than just on the object that raised the event. A routed event is a CLR event that is backed by an instance of the RoutedEvent class and is processed by the Windows Presentation Foundation (WPF) event system.
This objective may include but is not limited to:
VS4.2.1.1. tunneling vs. bubbling events, [Exam 70-511 and 70-521 only] - Routed events use one of three routing strategies:
· Bubbling: Event handlers on the event source are invoked. The routed event then routes to successive parent elements until reaching the element tree root. Most routed events use the bubbling routing strategy. Bubbling routed events are generally used to report input or state changes from distinct controls or other UI elements.
· Direct: Only the source element itself is given the opportunity to invoke handlers in response. This is analogous to the "routing" that Windows Forms uses for events. However, unlike a standard CLR event, direct routed events support class handling (class handling is explained in an upcoming section) and can be used by EventSetter and EventTrigger.
· Tunneling: Initially, event handlers at the element tree root are invoked. The routed event then travels a route through successive child elements along the route, towards the node element that is the routed event source (the element that raised the routed event). Tunneling routed events are often used or handled as part of the compositing for a control, such that events from composite parts can be deliberately suppressed or replaced by events that are specific to the complete control. Input events provided in WPF often come implemented as a tunneling/bubbling pair. Tunneling events are also sometimes referred to as Preview events, because of a naming convention that is used for the pairs.
VS4.2.1.2. handling and cancelling events [Exam 70-511 and 70-521 only] - To add an event handler in XAML, you simply add the event name to an element as an attribute and set the attribute value as the name of the event handler that implements an appropriate delegate.
This objective does not include: simple event handling; creating custom events
VS4.2.2. Configure WPF commanding. [Exam 70-511 and 70-521 only] - Commands have several purposes. The first purpose is to separate the semantics and the object that invokes a command from the logic that executes the command. This allows for multiple and disparate sources to invoke the same command logic, and it allows the command logic to be customized for different targets. For example, the editing operations Copy, Cut, and Paste, which are found in many applications, can be invoked by using different user actions if they are implemented by using commands. An application might allow a user to cut selected objects or text by either clicking a button, choosing an item in a menu, or using a key combination, such as CTRL+X. By using commands, you can bind each type of user action to the same logic.
This objective may include but is not limited to:
VS4.2.2.1. defining WPF commands based on RoutedCommand; [Exam 70-511 and 70-521 only] - The simplest way to use a command in WPF is to use a predefined RoutedCommand from one of the command library classes; use a control that has native support for handling the command; and use a control that has native support for invoking a command. The Paste command is one of the predefined commands in the ApplicationCommands class. The TextBox control has built in logic for handling the Paste command. And the MenuItem class has native support for invoking commands.
VS4.2.2.2. associating commands to controls; [Exam 70-511 and 70-521 only] - Commands in WPF are created by implementing the ICommand interface. ICommand exposes two methods, Execute, and CanExecute, and an event, CanExecuteChanged. Execute performs the actions that are associated with the command. CanExecute determines whether the command can execute on the current command target. CanExecuteChanged is raised if the command manager that centralizes the commanding operations detects a change in the command source that might invalidate a command that has been raised but not yet executed by the command binding. The WPF implementation of ICommand is the RoutedCommand class and is the focus of this overview.
VS4.2.2.3. handling commands; [Exam 70-511 and 70-521 only] - The routed command model in WPF can be broken up into four main concepts: the command, the command source, the command target, and the command binding: * The command is the action to be executed. * The command source is the object which invokes the command. * The command target is the object that the command is being executed on. * The command binding is the object which maps the command logic to the command.
VS4.2.2.4. command bindings; [Exam 70-511 and 70-521 only] - A CommandBinding associates a command with the event handlers that implement the command.
VS4.2.2.5. input gestures [Exam 70-511 and 70-521 only] - Implementations of InputGesture in Windows Presentation Foundation (WPF) are KeyGesture and MouseGesture. An input gesture can be associated with a command so that when the gesture is performed the command is invoked. For more information, see InputBinding and the Commanding Overview.
This objective does not include: creating custom commands by implementing ICommand
VS4.2.3. Modify the visual interface at run time. [Exam 70-511 only] -
This objective may include but is not limited to:
VS4.2.3.1. adding/removing controls at run time; [Exam 70-511 only] -
VS4.2.3.2. manipulating the visual tree; [Exam 70-511 only] - The visual tree contains all visual elements used in an application's user interface. Since a visual element contains persisted drawing information, you can think of the visual tree as a scene graph, containing all the rendering information needed to compose the output to the display device. This tree is the accumulation of all visual elements created directly by the application, whether in code or in markup. The visual tree also contains all visual elements created by the template expansion of elements such as controls and data objects.
VS4.2.3.3. control life cycle; [Exam 70-511 only] -
VS4.2.3.4. generating a template dynamically [Exam 70-511 only] -
This objective does not include: instantiating forms and simple modification of control properties at runtime
VS4.2.4. Implement user-defined controls. [Exam 70-511 and 70-521 only] -
This objective may include but is not limited to:
VS4.2.4.1. deciding whether to use a user/composite, extended, or custom control; [Exam 70-511 and 70-521 only] -
VS4.2.4.2. creating a user/composite control; [Exam 70-511 and 70-521 only] -
VS4.2.4.3. extending from an existing control [Exam 70-511 and 70-521 only] -
This objective does not include: creating a custom control by inheriting directly from the Control class and writing code
VS4.2.5. Create and display graphics. [Exam 70-511 only] -
This objective may include but is not limited to:
VS4.2.5.1. creating and displaying graphics by using geometric transformation; brushes; [Exam 70-511 only] - A SolidColorBrush paints an area with a solid Color. A LinearGradientBrush paints an area with a linear gradient. A RadialGradientBrush paints an area with a radial gradient. An ImageBrush paints an area with a ImageSource. A DrawingBrush paints an area with a Drawing. A Drawing can contain shapes, images, text, and media. A VisualBrush paints an area with a Visual object. Examples of Visual objects include Button, Page, and MediaElement.
VS4.2.5.2. drawing shapes; [Exam 70-511 only] -
VS4.2.5.3. clipping; [Exam 70-511 only] -
VS4.2.5.4. double buffering; [Exam 70-511 only] -
VS4.2.5.5. overriding Render (WPF) and OnPaint (WinForms); [Exam 70-511 only] -
VS4.2.5.6. differentiating between retained and non-retained graphics [Exam 70-511 only] -
This objective does not include: creating and displaying three-dimensional graphics; hit testing; creating images
VS4.2.6. Add multimedia content to an application in WPF. [Exam 70-511 only] - The multimedia features in Windows Presentation Foundation (WPF) enable you to integrate audio and video into your applications to enhance the user experience.
This objective may include but is not limited to:
VS4.2.6.1. media player vs. media element; [Exam 70-511 only] - The MediaElement and MediaPlayer classes are used to present audio or video content. These classes can be controlled interactively or by a clock. These classes can use on the Microsoft Windows Media Player 10 control for media playback. Which class you use, depends on the scenario.
VS4.2.6.2. adding a sound player; [Exam 70-511 only] - Media is loaded by setting a MediaTimeline object's Source property, creating the clock from the timeline, and assigning the clock to the media object. Media is also loaded this way when a MediaTimeline inside a Storyboard targets a MediaElement.
VS4.2.6.3. images [Exam 70-511 only] -
This objective does not include: buffering
VS4.2.7. Create and apply control templates in WPF. [Exam 70-511 only] - In WPF, the ControlTemplate of a control defines the appearance of the control. You can change the structure and appearance of a control by defining a new ControlTemplate for the control. In many cases, this gives you enough flexibility so that you do not have to write your own custom controls.
This objective may include but is not limited to:
VS4.2.7.1. template binding [Exam 70-511 only] - A TemplateBinding is an optimized form of a Binding for template scenarios, analogous to a Binding constructed with {Binding RelativeSource={RelativeSource TemplatedParent}}.
This objective does not include: styling and theming; data templating
VS4.2.8. Create data, event, and property triggers in WPF. [Exam 70-511 only] - A trigger sets properties or starts actions, such as an animation, when a property value changes or when an event is raised. Style, ControlTemplate, and DataTemplate all have a Triggers property that can contain a set of triggers. A Trigger that sets property values or starts actions based on the value of a property is called a property trigger. Note that the Trigger class also has the EnterActions and ExitActions properties that enable a trigger to perform actions.
VS4.3. Managing Data at the User Interface Layer (23%) [~17 questions] [Exam 70-511 and 70-521 only] -
VS4.3.1. Implement data binding. [Exam 70-511 and 70-521 only] - Data binding is the process that establishes a connection between the application UI and business logic. If the binding has the correct settings and the data provides the proper notifications, then, when the data changes its value, the elements that are bound to the data reflect changes automatically. Data binding can also mean that if an outer representation of the data in an element changes, then the underlying data can be automatically updated to reflect the change. For example, if the user edits the value in a TextBox element, the underlying data value is automatically updated to reflect that change.
This objective may include but is not limited to:
VS4.3.1.1. binding options, [Exam 70-511 and 70-521 only] - Each binding usually has four components: binding target, target property, binding source, and a path to the source value to use.
VS4.3.1.2. static and dynamic resources, [Exam 70-511 and 70-521 only] -
VS4.3.1.3. element bindings, [Exam 70-511 and 70-521 only] -
VS4.3.1.4. setting the correct binding mode and update mode; [Exam 70-511 and 70-521 only] -
VS4.3.1.5. binding to nullable values [Exam 70-511 and 70-521 only] -
This objective does not include: binding to a specific data source
VS4.3.2. Implement value converters in WPF. [Exam 70-511 only] -
This objective may include but is not limited to:
VS4.3.2.1. implementing custom value converters, [Exam 70-511 only] - If you want to associate a value converter with a binding, create a class that implements the IValueConverter interface and then implement the Convert and ConvertBack methods.
VS4.3.2.2. implementing multivalue converters [Exam 70-511 only] - MultiBinding allows you to bind a binding target property to a list of source properties and then apply logic to produce a value with the given inputs. To associate a converter with a MultiBinding, create a class that implements the IMultiValueConverter interface, and then implement the Convert and ConvertBack methods.
VS4.3.3. Implement data validation. [Exam 70-511 and 70-521 only] - The WPF data binding model allows you to associate ValidationRules with your Binding object.
This objective may include but is not limited to:
VS4.3.3.1. handling validation and providing user feedback via the error provider (WinForms) or data templates (WPF), [Exam 70-511 and 70-521 only] - 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.
VS4.3.3.2. IDataErrorInfo, [Exam 70-511 and 70-521 only] - A DataErrorValidationRule object checks for errors that are raised by objects that implement the IDataErrorInfo interface.
VS4.3.3.3. validation control, [Exam 70-511 and 70-521 only] -
VS4.3.3.4. form validation and control validation [Exam 70-511 and 70-521 only] -
VS4.3.4. Implement and consume change notification interfaces. [Exam 70-511 only] -
This objective may include but is not limited to:
VS4.3.4.1. implementing INotifyPropertyChanged; [Exam 70-511 only] - To implement INotifyPropertyChanged you need to declare the PropertyChanged event and create the OnPropertyChanged method. Then for each property you want change notifications for, you call OnPropertyChanged whenever the property is updated.
VS4.3.4.2. using INotifyCollectionChanged (ObservableCollection) [Exam 70-511 only] - You can enumerate over any collection that implements the IEnumerable interface. However, to set up dynamic bindings so that insertions or deletions in the collection update the UI automatically, the collection must implement the INotifyCollectionChanged interface. This interface exposes the CollectionChanged event that must be raised whenever the underlying collection changes.
VS4.3.5. Prepare collections of data for display. [Exam 70-511 and 70-521 only] -
This objective may include but is not limited to:
VS4.3.5.1. filtering, sorting, and grouping data; [Exam 70-511 and 70-521 only] - Once your ItemsControl is bound to a data collection, you may want to sort, filter, or group the data. To do that, you use collection views, which are classes that implement the ICollectionView interface.
VS4.3.5.2. LINQ; [Exam 70-511 and 70-521 only] -
VS4.3.5.3. CollectionView (WPF), [Exam 70-511 and 70-521 only] - You should not create objects of this class in your code. To create a collection view for a collection that only implements IEnumerable, create a CollectionViewSource object, add your collection to the Source property, and get the collection view from the View property.
VS4.3.5.4. BindingSource object (WinForms) [Exam 70-511 and 70-521 only] - Encapsulates the data source for a form. The BindingSource component serves many purposes. First, it simplifies binding controls on a form to data by providing currency management, change notification, and other services between Windows Forms controls and data sources. This is accomplished by attaching the BindingSource component to your data source using the DataSource property. For complex binding scenarios you can optionally set the DataMember property to a specific column or list in the data source. You then bind controls to the BindingSource. All further interaction with the data is accomplished with calls to the BindingSource component.
VS4.3.6. Bind to hierarchical data. [Exam 70-511 only] - The HierarchicalDataTemplate class is designed to be used with HeaderedItemsControl types to display such data.
This objective may include but is not limited to:
VS4.3.6.1. TreeView; [Exam 70-511 only] - Displays a hierarchical collection of labeled items, each represented by a TreeNode.
VS4.3.6.2. MenuControl [Exam 70-511 only] -
VS4.3.7. Implement data-bound controls. [Exam 70-511 and 70-521 only] -
This objective may include but is not limited to:
VS4.3.7.1. using the DataGridView (WinForms) or DataGrid (WPF) control to display and update the data contained in a data source, [Exam 70-511 and 70-521 only] -
VS4.3.7.2. implementing complex data binding to integrate data from multiple sources; [Exam 70-511 and 70-521 only] -
VS4.3.7.3. ItemsControl-derived controls (WPF) [Exam 70-511 and 70-521 only] -
VS4.3.8. Create a data template in WPF. [Exam 70-511 only] -
This objective may include but is not limited to:
VS4.3.8.1. implementing a data template selector; [Exam 70-511 only] -
VS4.3.8.2. using templates with ItemsControl [Exam 70-511 only] -
VS4.4. Enhancing the Functionality and Usability of a Solution (17%) [~13 questions] [Exam 70-511 and 70-521 only] -
VS4.4.1. Integrate WinForms and WPF within an application. [Exam 70-511 only] -
This objective may include but is not limited to:
VS4.4.1.1. using ElementHosts within WinForms and ControlHosts within WPF; [Exam 70-511 only] – ElementHosts is a Windows Forms control that can be used to host a Windows Presentation Foundation (WPF) element. WindowsFormsHost is an element that allows you to host a Windows Forms control on a WPF page. “ControlHosts” cannot be found either on MSDN, Bing, or Google.
VS4.4.1.2. using the PropertyMap property [Exam 70-511 only] - Use the PropertyMap property to assign custom mappings between an ElementHost control and its hosted WPF element.
VS4.4.2. Implement asynchronous processes and threading. [Exam 70-511 and 70-521 only] - Applications that perform many tasks simultaneously, yet remain responsive to user interaction, often require a design that uses multiple threads. The System.Threading namespace provides all the tools necessary to create high-performance multithreaded applications, but using these tools effectively requires significant experience with multithreaded software engineering. For relatively simple multithreaded applications, the BackgroundWorker component provides a straightforward solution. For more sophisticated asynchronous applications, consider implementing a class that adheres to the Event-based Asynchronous Pattern.
This objective may include but is not limited to:
VS4.4.2.1. implementing asynchronous programming patterns; [Exam 70-511 and 70-521 only] - If you are writing a class with some operations that may incur noticeable delays, consider giving it asynchronous functionality by implementing Event-based Asynchronous Pattern Overview.
The Event-based Asynchronous Pattern provides a standardized way to package a class that has asynchronous features. If implemented with helper classes like AsyncOperationManager, your class will work correctly under any application model, including ASP.NET, Console applications, and Windows Forms applications.
VS4.4.2.2. marshalling between threads; [Exam 70-511 and 70-521 only] -
VS4.4.2.3. freezing UI elements; [Exam 70-511 and 70-521 only] - A Freezable is a special type of object that has two states: unfrozen and frozen. When unfrozen, a Freezable appears to behave like any other object. When frozen, a Freezable can no longer be modified. A Freezable provides a Changed event to notify observers of any modifications to the object. Freezing a Freezable can improve its performance, because it no longer needs to spend resources on change notifications. A frozen Freezable can also be shared across threads, while an unfrozen Freezable cannot. Once frozen, a Freezable can never be modified or unfrozen; however, you can create an unfrozen clone using the Clone or CloneCurrentValue method.
VS4.4.2.4. using timers; [Exam 70-511 and 70-521 only] - Timers are lightweight objects that enable you to specify a delegate to be called at a specified time. A thread in the thread pool performs the wait operation. Using the Timer class is straightforward. You create a Timer, passing a TimerCallback delegate to the callback method, an object representing state that will be passed to the callback, an initial raise time, and a time representing the period between callback invocations. To cancel a pending timer, call the Timer.Dispose function.
VS4.4.2.5. Task Parallel Library; [Exam 70-511 and 70-521 only] - The Task Parallel Library (TPL) is a set of public types and APIs in the System.Threading and System.Threading.Tasks namespaces in the .NET Framework version 4.
VS4.4.2.6. parallel LINQ; [Exam 70-511 and 70-521 only] - Parallel LINQ (PLINQ) is a parallel implementation of LINQ to Objects. PLINQ implements the full set of LINQ standard query operators as extension methods for the T:System.Linq namespace and has additional operators for parallel operations.
VS4.4.2.7. using the dispatcher; [Exam 70-511 and 70-521 only] - The UI thread queues work items inside an object called a Dispatcher. The Dispatcher selects work items on a priority basis and runs each one to completion. Every UI thread must have at least one Dispatcher, and each Dispatcher can execute work items in exactly one thread.
VS4.4.2.8. BackgroundWorker component [Exam 70-511 and 70-521 only] - The BackgroundWorker component enables your form or control to run an operation asynchronously.
VS4.4.3. Incorporate globalization and localization features. [Exam 70-511 only] -
This objective may include but is not limited to:
VS4.4.3.1. loading resources by locale; [Exam 70-511 only] - When you develop a WPF application, the build process for localization is as follows:
· The developer creates and globalizes the WPF application. In the project file the developer sets <UICulture>en-US</UICulture> so that when the application is compiled, a language-neutral main assembly is generated. This assembly has a satellite .resources.dll file that contains all the localizable resources. Optionally, you can keep the source language in the main assembly because our localization APIs support extraction from the main assembly.
· When the file is compiled into the build, the XAML is converted to the BAML form of XAML. The culturally neutral MyDialog.exe and the culturally dependent (English) MyDialog.resources.dll files are released to the English-speaking customer.
VS4.4.3.2. marking localizable elements; [Exam 70-511 only] -
VS4.4.3.3. using culture settings in validators and converters; [Exam 70-511 only] -
VS4.4.3.4. using language properties and rendering direction properties; [Exam 70-511 only] - The basic property that defines the content flow direction in a WPF application is FlowDirection. This property can be set to one of two enumeration values, LeftToRight or RightToLeft. The property is available to all WPF elements that inherit from FrameworkElement.
VS4.4.3.5. working with resource files for localization; [Exam 70-511 only] -
VS4.4.3.6. determining installed locales; [Exam 70-511 only] -
VS4.4.3.7. regional settings [Exam 70-511 only] -
VS4.4.4. Implement drag and drop operations within and across applications. [Exam 70-511 only] -
This objective does not include: Dynamic Data Exchange (DDE)
VS4.4.5. Implement security features of an application. [Exam 70-511 and 70-521 only] -
This objective may include but is not limited to:
VS4.4.5.1. configuring Software Restriction Policy (SRP); [Exam 70-511 and 70-521 only] -
VS4.4.5.2. full trust and partially trusted security; [Exam 70-511 and 70-521 only] -
VS4.4.5.3. interoperability with legacy CAS policy; [Exam 70-511 and 70-521 only] - Code access security helps limit the access that code has to protected resources and operations.
VS4.4.5.4. User Account Control (UAC) [Exam 70-511 and 70-521 only] -
VS4.4.6. Manage user and application settings. [Exam 70-511 and 70-521 only] - The Application Settings feature of Windows Forms makes it easy to create, store, and maintain custom application and user preferences on the client computer.
This objective may include but is not limited to:
VS4.4.6.1. creating application settings; [Exam 70-511 and 70-521 only] - Using Visual Studio, you can create new application settings and bind them to properties on your form or your form's controls, so that these settings are loaded and saved automatically at run time.
VS4.4.6.2. creating user settings; [Exam 70-511 and 70-521 only] - You can change a user setting by assigning a new value to the setting's property on the My.Settings object.
VS4.4.6.3. loading and saving settings [Exam 70-511 and 70-521 only] - Application settings allow you to store and retrieve property settings and other information for your application dynamically. There are two types of application settings, based on scope: user-scoped and application-scoped settings.
This objective does not include: persisting to database
VS4.4.7. Implement dependency properties. [Exam 70-511 and 70-521 only] - Windows Presentation Foundation (WPF) provides a set of services that can be used to extend the functionality of a common language runtime (CLR) property. Collectively, these services are typically referred to as the WPF property system. A property that is backed by the WPF property system is known as a dependency property.
This objective may include but is not limited to:
VS4.4.7.1. enabling data binding and animation, [Exam 70-511 and 70-521 only] - A dependency property can reference a value through data binding. Data binding works through a specific markup extension syntax in XAML, or the Binding object in code. With data binding, the final property value determination is deferred until run time, at which time the value is obtained from a data source. Dependency properties can be animated. When an animation is applied and is running, the animated value operates at a higher precedence than any value (such as a local value) that the property otherwise has.
VS4.4.7.2. property metadata, [Exam 70-511 and 70-521 only] - The Windows Presentation Foundation (WPF) property system includes a metadata reporting system that goes beyond what can be reported about a property through reflection or general common language runtime (CLR) characteristics. Metadata for a dependency property can also be assigned uniquely by the class that defines a dependency property, can be changed when the dependency property is added to a different class, and can be specifically overridden by all derived classes that inherit the dependency property from the defining base class.
VS4.4.7.3. property change callbacks [Exam 70-511 and 70-521 only] - Validation callbacks can be assigned to a dependency property when you first register it. The validation callback is not part of property metadata; it is a direct input of the Register method. Therefore, once a validation callback is created for a dependency property, it cannot be overridden by a new implementation.
VS4.5. Stabilizing and Releasing a Solution (17%) [~13 questions] [Exam 70-511 and 70-521 only] -
VS4.5.1. Implement a WPF test strategy. [Exam 70-511 and 70-521 only] -
This objective may include but is not limited to:
VS4.5.1.1. automation peer, [Exam 70-511 and 70-521 only] -
VS4.5.1.2. UI automation, [Exam 70-511 and 70-521 only] -
VS4.5.1.3. IntelliTrace [Exam 70-511 and 70-521 only] -
VS4.5.2. Debug XAML by using the WPF Visualizer. [Exam 70-511 and 70-521 only] -
This objective may include but is not limited to:
VS4.5.2.1. accessing the Visualizer, [Exam 70-511 and 70-521 only] -
VS4.5.2.2. drilling down into the visual tree, [Exam 70-511 and 70-521 only] -
VS4.5.2.3. viewing and changing properties [Exam 70-511 and 70-521 only] -
This objective does not include: setting a breakpoint and stepping through code
VS4.5.3. Debug WPF issues by using PresentationTraceSources. [Exam 70-511 only] - Debug tracing is only available when a WPF application is running in full trust mode.
This objective may include but is not limited to:
VS4.5.3.1. animation, [Exam 70-511 only] - PresentationTraceSources.AnimationSource Property gets an animation trace source.
VS4.5.3.2. data binding, [Exam 70-511 only] - PresentationTraceSources.DataBindingSource Property gets a data-binding trace source.
VS4.5.3.3. dependency properties [Exam 70-511 only] - PresentationTraceSources.DependencyPropertySource Property gets a dependency property trace source.
VS4.5.4. Configure a ClickOnce deployment. [Exam 70-511 only] -
This objective may include but is not limited to:
VS4.5.4.1. configuring the installation of a WinForms, WPF, or XBAP application by using ClickOnce technology; [Exam 70-511 only] - XAML browser applications (XBAPs) combines features of both Web applications and rich-client applications. Like Web applications, XBAPs can be deployed to a Web server and started from Internet Explorer or Firefox.
VS4.5.4.2. choosing appropriate settings to manage upgrades [Exam 70-511 only] -
VS4.5.5. Create and configure a Windows Installer project. [Exam 70-511 and 70-521 only] -
This objective may include but is not limited to:
VS4.5.5.1. configuring a setup project to add icons during setup, [Exam 70-511 and 70-521 only] -
VS4.5.5.2. setting deployment project properties, [Exam 70-511 and 70-521 only] -
VS4.5.5.3. configuring conditional installation based on operating system versions, [Exam 70-511 and 70-521 only] -
VS4.5.5.4. setting appropriate Launch Conditions based on the .NET Framework version, [Exam 70-511 and 70-521 only] -
VS4.5.5.5. adding custom actions to a setup project, [Exam 70-511 and 70-521 only] -
VS4.5.5.6. adding error-handling code to a setup project [Exam 70-511 and 70-521 only] -
VS4.5.6. Configure deployment security settings. [Exam 70-511 and 70-521 only] -
This objective may include but is not limited to:
VS4.5.6.1. configuring and integrating UAC by using ClickOnce deployments; [Exam 70-511 and 70-521 only] - UAC is a new access control technology in Windows Vista that causes all users to run with limited privileges. For more information, see the User Account Control documentation.
VS4.5.6.2. setting appropriate security permissions to deploy the application [Exam 70-511 and 70-521 only] - Applications that are deployed using ClickOnce technology run in a "sandbox," with a limited set of permissions based on a security zone. The following table lists the default permissions based on the deployment location:
Deployment Location | Security Zone |
Run from Web | Internet Zone |
Install from Web | Internet Zone |
Install from network file share | Intranet Zone |
Install from CD-ROM | Full Trust |
= = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = =
70-515 TS: Web Applications Development with Microsoft® .NET Framework 4
Skills being measured:
VS4.6. Developing Web Forms Pages (19%) [~14 questions] [Exam 70-515 and 70-523 only] -
VS4.6.1. Configure Web Forms pages. [Exam 70-515 and 70-523 only] -
This objective may include but is not limited to:
VS4.6.1.1. page directives such as ViewState, request validation, event validation, MasterPageFile; [Exam 70-515 and 70-523 only] – @Page defines page-specific (.aspx file) attributes used by the ASP.NET page parser and compiler.
VS4.6.1.1.1. ViewState, [Exam 70-515 and 70-523 only] - A server control's view state is the accumulation of all its property values. In order to preserve these values across HTTP requests, ASP.NET server controls use this property, which is an instance of the StateBag class, to store the property values. The values are then passed as a variable to an HTML hidden input element when subsequent requests are processed.
VS4.6.1.1.2. request validation, [Exam 70-515 and 70-523 only] - Request validation detects potentially malicious client input and throws this exception to abort processing of the request. A request abort can indicate an attempt to compromise the security of your application, such as a cross-site scripting attack. It is strongly recommended that your application explicitly check all input regarding request aborts. However, you can disable request validation by setting the validateRequest attribute in the @ Page directive to false.
VS4.6.1.1.3. event validation, [Exam 70-515 and 70-523 only] - The EnableEventValidation attribute indicates whether event validation should be performed. The default value is true. A Web application can optionally disable event validation to revert to .NET Framework version 1.0 behavior. The base control checks this attribute to determine whether it should validate events. A derived control does not inherit this base control attribute, and so it is exempt from event validation by default. You still instruct ASP.NET to perform event validation on the derived control by adding the EnableEventValidation attribute to the derived control itself and setting it to true.
VS4.6.1.1.4. MasterPageFile; [Exam 70-515 and 70-523 only] - The MasterPageFile property is the name of the master page file associated with this page. The MasterPageFile property can be set only in the PreInit event; attempting to set the MasterPageFile property after the PreInit event will throw an InvalidOperationException exception.
VS4.6.1.2. ClientIDMode; [Exam 70-515 and 70-523 only] - Specifies the algorithm to use to generate ClientID values for controls. The default value is Predictable. The default value for controls is Inherit. Therefore, the default algorithm for controls in a page is determined by the ClientID setting of the page. A different default value can be set in the pages element of the Web.config file. For more information about the algorithms, see the ClientIDMode class.
VS4.6.1.3. using web.config; [Exam 70-515 and 70-523 only] - The Web.config file is the primary configuration file for any web service. ASP.NET configuration data is stored in XML text files, each named Web.config. Web.config files can appear in multiple directories in ASP.NET applications. Each Web.config file applies configuration settings to its own directory and to all the child directories below it. Settings in child directories can optionally override or modify settings that are specified in parent directories. The root of the ASP.NET configuration hierarchy is the systemroot\Microsoft.NET\Framework\versionNumber\CONFIG\Web.config file, which includes settings that apply to all ASP.NET applications that run a specific version of the Microsoft .NET Framework. Because each ASP.NET application inherits default configuration settings from the root Web.config file, you only need to create Web.config files for settings that override the default settings.
VS4.6.1.4. setting the html doctype [Exam 70-515 and 70-523 only] - Specifies the Document Type Definition (DTD) to which the document conforms.
This objective does not include: referencing a master page; adding a title to a Web form
VS4.6.2. Implement master pages and themes. [Exam 70-515 only] - A theme is a collection of property settings that allow you to define the look of pages and controls, and then apply the look consistently across pages in a Web application, across an entire Web application, or across all Web applications on a server.
This objective may include but is not limited to:
VS4.6.2.1. creating and applying themes; [Exam 70-515 only] - A theme is a collection of property settings that allow you to define the look of pages and controls, and then apply the look consistently across pages in a Web application, across an entire Web application, or across all Web applications on a server. You can apply themes to a page, a Web site, or globally. Setting a theme at the Web site level applies styles and skins to all the pages and controls in the site unless you override a theme for an individual page. Setting a theme at the page level applies styles and skins to that page and all its controls. By default, themes override local control settings. Alternatively, you can set a theme as a style sheet theme, so that the theme applies only to control settings that are not explicitly set on the control.
VS4.6.2.2. adding multiple content placeholders; [Exam 70-515 only] - The master page defines how the pages in your site look. It can contain any combination of static text and controls. A master page also contains one or more content placeholders that designate where dynamic content will appear when pages are displayed.
VS4.6.2.3. nested master pages; [Exam 70-515 only] - Master pages can be nested, with one master page referencing another as its master. Nested master pages allow you to create componentized master pages. For example, a large site might contain an overall master page that defines the look of the site. Different site content partners can then define their own child master pages that reference the site master and that in turn define the look for that partner's content.
VS4.6.2.4. control skins; [Exam 70-515 only] - A skin file has the file name extension .skin and contains property settings for individual controls such as Button, Label, TextBox, or Calendar controls. Control skin settings are like the control markup itself, but contain only the properties you want to set as part of the theme.
VS4.6.2.5. passing messages between master pages; [Exam 70-515 only] -
VS4.6.2.6. switching between themes at runtime; [Exam 70-515 only] - In addition to specifying theme and skin preferences in page declarations and configuration files, you can apply themes programmatically. You can set both page themes and style sheet themes programmatically; however, the procedure for applying each type of theme is different.
VS4.6.2.7. loading themes at run time; [Exam 70-515 only] – To apply a page theme programmatically, in a handler for the page's PreInit method, set the page's Theme property. To apply a style sheet theme programmatically, in the page's code, override the StyleSheetTheme property and in the get accessor, return the name of the style sheet theme.
VS4.6.2.8. applying a validation schema [Exam 70-515 only] - The Visual Studio HTML editor can check the markup in your page and indicate when elements, attributes, or values are not valid. The editor determines what is valid based on the currently selected browser schema. For example, if you have set the browser to Internet Explorer 6, the editor compares the markup in your page against a schema that defines what Internet Explorer 6 considers valid HTML. For more information, see Markup Validation in Visual Web Developer.
This objective does not include: creating a master page; basic content pages
VS4.6.3. Implement globalization. [Exam 70-515 only] - A globalized application supports localized user interfaces and regional data for all users.
This objective may include but is not limited to:
VS4.6.3.1. resource files, [Exam 70-515 only] - 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. You create a separate resource file for each language (for example, English and French) or for a language and culture (for example English [U.K.], English [U.S.]). Each localized resource file has the same key/value pairs; the only difference is that a localized resource file can contain fewer resources than the default resource file. The built-in language fallback process then handles loading the neutral or default resource. Resource files in ASP.NET have an .resx extension. At run time, the .resx file is compiled into an assembly, which is sometimes referred to as a satellite assembly. Because the .resx files are compiled dynamically, like ASP.NET Web pages, you do not have to create the resource assemblies. The compilation condenses several similar-language resource files into the same assembly.
VS4.6.3.2. browser files, [Exam 70-515 only] - Browser definition files contain definitions for individual browsers. At run time, ASP.NET uses the information in the request header to determine what type of browser has made the request. Then ASP.NET uses .browser files to determine the capabilities of the browser. ASP.NET control adapters can use this information to adapt the behavior of an ASP.NET Web server control depending on the type of device. For example, a server control might generate different HTML for a graphical browser such as Internet Explorer than it would for a mobile device.
VS4.6.3.3. CurrentCulture, [Exam 70-515 only] - The CurrentCulture property represents current culture information on a per-thread basis. This information determines the default formats for dates, times, currency, and numbers; the sorting order of text; string comparisons; and casing. The setting made through this property is not a language setting. The property defines only data related to the standard settings for a geographical region. Therefore, your application can only set CurrentCulture to a specific culture or to the InvariantCulture. The application can use the CurrentThread property to set CurrentCulture.
VS4.6.3.4. currentUICulture, [Exam 70-515 only] - The CurrentUICulture property represents current user interface culture on a per-thread basis. This property is used by the ResourceManager class to look up culture-specific resources at run time. Your application can use a neutral or specific culture, or the InvariantCulture to set the CurrentUICulture property. The application can use the CurrentThread property to set CurrentCulture.
VS4.6.3.5. ASP:Localize [Exam 70-515 only] – The Localize class reserves a location on a Web page in which to display localized static text: <asp:Localize />
VS4.6.4. Handle page life cycle events. [Exam 70-515 and 70-523 only] – Page Events are as follows:
PreInit - Raised after the start stage is complete and before the initialization stage begins.
Init - Raised after all controls have been initialized and any skin settings have been applied. The Init event of individual controls occurs before the Init event of the page.
InitComplete - Raised at the end of the page's initialization stage.
PreLoad - Raised after the page loads view state for itself and all controls, and after it processes postback data that is included with the Request instance.
Load - The Page object calls the OnLoad method on the Page object, and then recursively does the same for each child control until the page and all controls are loaded. The Load event of individual controls occurs after the Load event of the page.
Control events - Use these events to handle specific control events, such as a Button control's Click event or a TextBox control's TextChanged event.
LoadComplete - Raised at the end of the event-handling stage.
PreRender - Raised after the Page object has created all controls that are required in order to render the page, including child controls of composite controls. (To do this, the Page object calls EnsureChildControls for each control and for the page.)
PreRenderComplete - Raised after each data bound control whose DataSourceID property is set calls its DataBind method.
SaveStateComplete - Raised after view state and control state have been saved for the page and for all controls. Any changes to the page or controls at this point affect rendering, but the changes will not be retrieved on the next postback.
Render - This is not an event; instead, at this stage of processing, the Page object calls this method on each control. All ASP.NET Web server controls have a Render method that writes out the control's markup to send to the browser.
Unload - Raised for each control and then for the page.
This objective may include but is not limited to:
VS4.6.4.1. IsPostback, [Exam 70-515 and 70-523 only] - True if the page is being loaded in response to a client postback; otherwise, false.
VS4.6.4.2. IsValid, [Exam 70-515 and 70-523 only] - True if page validation succeeded; otherwise, false.
VS4.6.4.3. dynamically creating controls, [Exam 70-515 and 70-523 only] - In order to programmatically add a control to a page, there must be a container for the new control. For example, if you are creating table rows, the container is the table. If there is no obvious control to act as container, you can use a PlaceHolder or Panel Web server control. In some instances, you might want to create both static text and controls. To create static text, you can use either a Literal or a Label Web server control. You can then add these controls to the container as you would any other control. For information about view state in controls created at run time, see Dynamic Web Server Controls and View State.
VS4.6.4.4. control availability within the page life cycle, [Exam 70-515 and 70-523 only] - During page initialization, controls on the page are available and each control's UniqueID property is set. A master page and themes are also applied to the page if applicable. If the current request is a postback, the postback data has not yet been loaded and control property values have not been restored to the values from view state.
VS4.6.4.5. accessing control values on postback, [Exam 70-515 and 70-523 only] - During a cross-page postback, the contents of the source page's controls are posted to the target page, and the browser executes an HTTP POST operation (not a GET operation). However, in the target page, the IsPostBack property is false immediately after a cross-page post. Although the behavior is that of a POST, the cross-posting is not a postback to the target page. Therefore, IsPostBack is set to false and the target page can go through its first-time code.
VS4.6.4.6. overriding page events [Exam 70-515 and 70-523 only] - When you create a class that inherits from the Page class, in addition to handling events raised by the page, you can override methods from the page's base class. For example, you can override the page's InitializeCulture method to dynamically set culture information. Note that when an event handler is created using the Page_event syntax, the base implementation is implicitly called and therefore you do not need to call it in your method. For example, the base page class's OnLoad method is always called, whether you create a Page_Load method or not. However, if you override the page OnLoad method with the override keyword (Overrides in Visual Basic), you must explicitly call the base method. For example, if you override the OnLoad method on the page, you must call base.Load (MyBase.Load in Visual Basic) in order for the base implementation to be run.
VS4.6.5. Implement caching. [Exam 70-515 only] - One of the most important factors in building high-performance, scalable Web applications is the ability to store items, whether data objects, pages, or parts of a page, in memory the initial time they are requested. You can cache, or store, these items on the Web server or other software in the request stream, such as the proxy server or browser.
This objective may include but is not limited to:
VS4.6.5.1. data caching; [Exam 70-515 only] - You can place items in the Cache and later retrieve them using simple key/value pairs. For examples of how to do this, see How to: Add Items to the Cache and How to: Retrieve Values of Cached Items.
VS4.6.5.2. page output caching; [Exam 70-515 only] - The page output cache stores the contents of a processed ASP.NET page in memory.
VS4.6.5.3. control output caching; [Exam 70-515 only] - In control caching, also known as fragment caching, you can cache parts of the page output by creating user controls to contain the cached content and then marking the user controls as cacheable. This allows specific content within a page to be cached, while the overall page is recreated each time. For example, if you create a page that displays largely dynamic content, such as stock information, but also has sections that are static, such as weekly summaries, you can create the static sections in user controls and configure the user controls to be cached. Once you identify the portions of the page that you want to cache and create the user controls that contain each of those portions, you must determine the caching policies for the user controls. You can set these policies declaratively using the @ OutputCache directive, or by using the PartialCachingAttribute class in the code for the user control.
VS4.6.5.4. cache dependencies; [Exam 70-515 only] - You can configure an item's lifetime in the cache to be dependent on other application elements such as files or databases. When the element that a cache item depends on changes, ASP.NET removes the item from the cache. For example, if your Web site displays a report that the application creates from an XML file, you can place the report in the cache and configure it to have a dependency on the XML file. When the XML file changes, ASP.NET removes the report from the cache. When your code requests the report, the code first determines whether the report is in the cache, and if not, your code can re-create it. Therefore, an up-to-date version of the report is always available.
VS4.6.5.5. setting cache lifetimes; [Exam 70-515 only] - You can do this declaratively (by including an @ OutputCache directive in the ASP.NET page (.aspx file) whose response you want to cache -- Set the Duration attribute to a positive numeric value, and set the VaryByParam attribute to a value) or programmatically (In the page's code, set the expiration policy for the page on the Cache property of the Response object).
VS4.6.5.6. substitution control [Exam 70-515 only] - The ASP.NET Substitution control specifies a section of a cached page that is created dynamically rather than cached. You place a Substitution control at the location on the page where you want the dynamic content to appear. At run time, the Substitution control calls a method that you specify with the MethodName property. The method must return a string, which then replaces the content of the Substitution control. The method must be a static method on the containing Page or UserControl control. Using the substitution control causes client-side cacheability to be changed to server cacheability, so that the page will not be cached on the client. This ensures that future requests to the page call the method again to generate dynamic content.
This objective does not include: distributed caching (Velocity)
VS4.6.6. Manage state. [Exam 70-515 only] - A new instance of the Web page class is created each time the page is posted to the server. In traditional Web programming, this would typically mean that all information associated with the page and the controls on the page would be lost with each round trip. For example, if a user enters information into a text box, that information would be lost in the round trip from the browser or client device to the server. To overcome this inherent limitation of traditional Web programming, ASP.NET includes several options that help you preserve data on both a per-page basis and an application-wide basis.
This objective may include but is not limited to:
VS4.6.6.1. server-side technologies, for example, session and application; [Exam 70-515 only] - ASP.NET session state enables you to store and retrieve values for a user as the user navigates ASP.NET pages in a Web application. HTTP is a stateless protocol. This means that a Web server treats each HTTP request for a page as an independent request. The server retains no knowledge of variable values that were used during previous requests. ASP.NET session state identifies requests from the same browser during a limited time window as a session, and provides a way to persist variable values for the duration of that session. By default, ASP.NET session state is enabled for all ASP.NET applications. 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. Therefore, application state is a useful place to store small amounts of often-used data that does not change from one user to another.
VS4.6.6.2. client-side technologies, for example, cookies and ViewState; [Exam 70-515 only] - 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. 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.
VS4.6.6.3. configuring session state (in proc, state server, Microsoft SQL Server; cookieless); [Exam 70-515 only] - ASP.NET session state supports several different storage options for session data. Each option is identified by a value in the SessionStateMode enumeration. The following list describes the available session state modes:
· InProc mode, which stores session state in memory on the Web server. This is the default.
· StateServer mode, which stores session state in a separate process called the ASP.NET state service. This ensures that session state is preserved if the Web application is restarted and also makes session state available to multiple Web servers in a Web farm.
· SQLServer mode stores session state in a SQL Server database. This ensures that session state is preserved if the Web application is restarted and also makes session state available to multiple Web servers in a Web farm.
· Custom mode, which enables you to specify a custom storage provider.
· Off mode, which disables session state.
You can specify which mode you want ASP.NET session state to use by assigning a SessionStateMode enumeration values to the mode attribute of the sessionState element in your application's Web.config file. Modes other than InProc and Off require additional parameters, such as connection-string values as discussed later in this topic. You can view the currently selected session state by accessing the value of the HttpSessionState.Mode property.
VS4.6.6.4. session state compression; [Exam 70-515 only] – compressionEnabled attribute specifies whether compression is applied to the session-state data. The default is false.
VS4.6.6.5. persisting data by using ViewState; [Exam 70-515 only] - A server control's view state is the accumulation of all its property values. In order to preserve these values across HTTP requests, ASP.NET server controls use the ViewState property, which is an instance of the StateBag class, to store the property values. The values are then passed as a variable to an HTML hidden input element when subsequent requests are processed. For more information about saving server control view state, see ASP.NET State Management Overview. You can access view state information by using the page's ViewState property, which exposes a dictionary object. You can use this dictionary to store custom values. A typical use is to store the value of custom properties that you define in the page. Because view state is sent as a hidden field, you can make changes to view state until the page's PreRenderComplete event. After the page is rendered to the browser, changes to view state will not be saved.
VS4.6.6.6. compressing ViewState; [Exam 70-515 only] - Another approach to reducing the bloat imposed by view state is to compress the serialized view state stream in the SavePageStateToPersistenceMedium() method, and then decompress it back to its original form in the LoadPageStateFromPersistenceMedium() method.
VS4.6.6.7. moving ViewState [Exam 70-515 only] -
VS4.7. Developing and Using Web Forms Controls (18%) [~14 questions] [Exam 70-515 and 70-523 only] -
VS4.7.1. Validate user input. [Exam 70-515 and 70-523 only] - You can add input validation to ASP.NET Web pages using validation controls. Validation controls provide an easy-to-use mechanism for all common types of standard validation—for example, testing for valid dates or values within a range—plus ways to provide custom-written validation. In addition, validation controls allow you to customize how error information is displayed to the user.
This objective may include but is not limited to:
VS4.7.1.1. client side, server side, and via AJAX; [Exam 70-515 and 70-523 only] - If the user is working with a browser that supports dynamic HTML (DHTML), ASP.NET validation controls can perform validation using client script. Because the controls can provide immediate feedback without a round trip to the server, the user experience with the page is enhanced.
VS4.7.1.2. custom validation controls; [Exam 70-515 and 70-523 only] - You can customize the validation process in the following ways:
· You can specify the format, text, and location of error messages. In addition, you can specify whether the error messages appear individually or as a summary.
· You can create custom validation using CustomValidator control. The control calls your logic but otherwise functions like other validation controls in setting error state, displaying error messages, and so on. This provides an easy way to create custom validation logic while still using in the validation framework of the page.
· For client-side validation, you can intercept the validation call and substitute or add your own validation logic.
VS4.7.1.3. regex validation; [Exam 70-515 and 70-523 only] - The RegularExpressionValidator control checks whether the value of an input control matches a pattern defined by a regular expression. This type of validation allows you to check for predictable sequences of characters, such as those in e-mail addresses, telephone numbers, and postal codes.
VS4.7.1.4. validation groups; [Exam 70-515 and 70-523 only] - Validation groups allow you to organize validation controls on a page as a set. Each validation group can perform validation independently from other validation groups on the page. You create a validation group by setting the ValidationGroup property to the same name (a string) for all the controls you want to group. You can assign any name to a validation group, but you must use the same name for all members of the group.
VS4.7.1.5. datatype check; [Exam 70-515 and 70-523 only] - You can validate a user's entry in an ASP.NET Web page against a specific data type to be sure that what the user has entered is a number, or a date, and so on. For example, if you want to collect birth date information on a user registration page, you can use a CompareValidator control to make sure that the date is in a recognized format before it is submitted.
VS4.7.1.6. jQuery validation [Exam 70-515 and 70-523 only] - You can also add client-side validation to check user input before the page is submitted by writing a function in ECMAScript (JavaScript) that duplicates the logic of the server-side method.
This objective does not include: RangeValidator and RequiredValidator
VS4.7.2. Create page layout. [Exam 70-515 and 70-523 only] -
This objective may include but is not limited to:
VS4.7.2.1. AssociatedControlID; [Exam 70-515 and 70-523 only] - Use the AssociatedControlID property to associate a Label control with another server control on a Web form. When a Label control is associated with another server control, its attributes can be used to extend the functionality of the associated control. You can use the Label control as a caption for another control, or you can set the tab index or hot key for an associated control. When the AssociatedControlID property is set, the Label control renders as an HTML label element, with the for attribute set to the ID property of the associated control. You can set other attributes of the label element using the Label properties. For example, you can use the Text and AccessKey properties to provide the caption and hot key for an associated control.
VS4.7.2.2. Web parts; [Exam 70-515 and 70-523 only] - ASP.NET Web Parts controls are an integrated set of controls for creating Web sites that enable end users to modify the content, appearance, and behavior of Web pages directly in a browser.
VS4.7.2.3. navigation controls; [Exam 70-515 and 70-523 only] - ASP.NET Web server controls that appear on the Navigation tab of the Visual Web Developer Toolbox include Menu Web Server Control, SiteMapPath Web Server Control, and TreeView Control. You can use these controls to create menus and other navigation aids on ASP.NET Web pages.
VS4.7.2.4. FileUpload controls [Exam 70-515 and 70-523 only] - The FileUpload class displays a text box control and a browse button that enable users to select a file on the client and upload it to the Web server. The user specifies the file to upload by entering the full path of the file on the local computer (for example, C:\MyFiles\TestFile.txt) in the text box of the control. Alternately, the user can select the file by clicking the Browse button, and then locating it in the Choose File dialog box.
This objective does not include: label; placeholder, panel controls; CSS, HTML, referencing CSS files, inlining
VS4.7.3. Implement user controls. [Exam 70-515 only] - In addition to using Web server controls in your ASP.NET Web pages, you can create your own custom, reusable controls using the same techniques you use for creating ASP.NET Web pages. These controls are called user controls. A user control is a kind of composite control that works much like an ASP.NET Web page—you can add existing Web server controls and markup to a user control, and define properties and methods for the control. You can then embed them in ASP.NET Web pages, where they act as a unit.
This objective may include but is not limited to:
VS4.7.3.1. registering a control; [Exam 70-515 only] - To use a user control, you include it in an ASP.NET Web page, by creating an @ Register directive that includes a TagPrefix attribute, which associates a prefix with the user control (This prefix will be included in opening tag of the user control element), a TagName attribute, which associates a name with the user control (This name will be included in the opening tag of the user control element) and a Src attribute, which defines the virtual path to the user control file that you are including. When a request arrives for a page and that page contains a user control, the user control goes through all of the processing stages that any ASP.NET server control performs.
VS4.7.3.2. adding a user control; [Exam 70-515 only] - You add a user control to a page by registering it on the host page. When you register it, you specify the .ascx file that contains the user control, a tag prefix, and a tag name that you will use to declare the user control on the page.
VS4.7.3.3. referencing a user control; [Exam 70-515 only] - In Visual Web Developer, open the Web page to which you want to add the ASP.NET user control. Switch to Design view. Select your custom user control file in Solution Explorer, and drag it onto the page.
VS4.7.3.4. dynamically loading a user control; [Exam 70-515 only] - Just as you can programmatically create an instance of any server control on an ASP.NET Web page, you can do the same with a user control. In the user control, be sure that the @ Control directive contains a ClassName attribute that assigns a class to the user control. In the page where you want to work with the user control, create a reference to the user control with the @ Reference directive. Create an instance variable for the user control, using the control's class name. The class will be part of the ASP namespace.
When you load a control into a container control, the container raises all of the added control's events until it has caught up to the current event. However, the added control does not catch up with postback data processing. For an added control to participate in postback data processing, including validation, the control must be added in the Init event rather than in the Load event.
VS4.7.3.5. custom event; [Exam 70-515 only] -
VS4.7.3.6. custom properties; [Exam 70-515 only] -
VS4.7.3.7. setting toolbox visibility [Exam 70-515 only] -
VS4.7.4. Implement server controls. [Exam 70-515 only] -
This objective may include but is not limited to:
VS4.7.4.1. composite controls, [Exam 70-515 only] - A composite control uses child controls to create a user interface (UI) and to perform other logic. Since a composite control relies on child controls for its functionality, it is significantly easier to develop a composite control than to implement all of the control's functionality yourself.
VS4.7.4.2. INamingContainer, [Exam 70-515 only] - Identifies a container control that creates a new ID namespace within a Page object's control hierarchy. This is a marker interface only.
VS4.7.4.3. adding a server control to the toolbox, [Exam 70-515 only] -
VS4.7.4.4. global assembly cache, [Exam 70-515 only] - You can reference a control in the GAC by assigning an identifying string to the assembly attribute. The string specifies the required details about the control, including its fully qualified type name, its version, its public key token, and its culture.
VS4.7.4.5. creating a custom control event, [Exam 70-515 only] - When you are editing an ASP.NET Web page in Visual Studio, you can create server event handlers for controls and for the page in a variety of ways. Some of the ways depend on which programming language you are working in. You can create handlers by using the facilities in Visual Web Developer, or you can create them declaratively or in code.
VS4.7.4.6. globally registering from web.config; [Exam 70-515 only] - The controls element defines a collection of register directives and the namespaces where the tag prefixes reside. This element corresponds to the @ Register directive on an ASP.NET page. The @ Register directive lets you specify the tag prefix for a user control.
Tag prefixes associate a namespace in ASP.NET to the assemblies and namespaces that must be included for COM and user controls to work correctly. The following information is useful when configuring the controls element:
· If applied to a user control, you must define the tagPrefix, tagName, and source attributes of the add child element.
· If applied to a custom control, you must define the tagPrefix, namespace, and assembly attributes of the add child element. The assembly attribute is not required, if the control is in the application code directory.
You can use the same tagPrefix value to map to multiple assemblies or namespaces.
VS4.7.4.7. TypeConverters [Exam 70-515 only] - ASP.NET uses type converters at run time to serialize and deserialize objects stored in control state and in view state.
This objective does not include: postback data handler, custom databound controls, templated control
VS4.7.5. Manipulate user interface controls from code-behind. [Exam 70-515 and 70-523 only] -
This objective may include but is not limited to:
VS4.7.5.1. HTML encoding to avoid cross-site scripting, navigating through and manipulating the control hierarchy; [Exam 70-515 and 70-523 only] - Most scripting exploits occur when users can get executable code (or script) into your application. By default, ASP.NET provides request validation, which raises an error if a form post contains any HTML.
You can help protect against script exploits in the following ways:
· Perform parameter validation on form variables, query-string variables, and cookie values. This validation should include two types of verification: verification that the variables can be converted to the expected type (for example, convert to an integer, convert to date-time, and so on), and verification of expected ranges or formatting. For example, a form post variable that is intended to be an integer should be checked with the Int32.TryParse method to verify the variable really is an integer. Furthermore, the resulting integer should be checked to verify the value falls within an expected range of values.
· Apply HTML encoding to string output when writing values back out to the response. This helps ensure that any user-supplied string input will be rendered as static text in the browsers instead of executable script code or interpreted HTML elements.
VS4.7.5.2. FindControl; [Exam 70-515 and 70-523 only] - Searches the current naming container for a server control with the specified id parameter.
VS4.7.5.3. controlRenderingCompatibilityVersion; [Exam 70-515 and 70-523 only] - Gets or sets a value that specifies the ASP.NET version that any rendered HTML will be compatible with.
VS4.7.5.4. URL encoding; [Exam 70-515 and 70-523 only] - URL encoding ensures that all browsers will correctly transmit text in URL strings. Characters such as a question mark (?), ampersand (&), slash mark (/), and spaces might be truncated or corrupted by some browsers. As a result, these characters must be encoded in <a> tags or in query strings where the strings can be re-sent by a browser in a request string.
VS4.7.5.5. RenderOuterTable [Exam 70-515 and 70-523 only] - Gets or sets a value that indicates whether the control encloses rendered HTML in a table element in order to apply inline styles.
This objective does not include: Visibility, Text, Enabled properties
VS4.8. Implementing Client-Side Scripting and AJAX (16%) [~12 questions] [Exam 70-515 and 70-523 only] - ASP.NET provides two approaches for including client capabilities. The first approach is to use the Ajax features of ASP.NET. Microsoft Ajax includes library script files that contain client script functions that bring many of the advantages of object-oriented programming and of the ASP.NET model to client scripting. Microsoft Ajax also provides server-based support that includes Web server controls that can automatically render client script that is required for Microsoft Ajax functionality.
The second approach is to create client script and integrate it yourself into ASP.NET Web pages. This approach is useful if you have only small pieces of client script or if you want to integrate existing client script into your application. This approach is used by many ASP.NET Web server controls (for example, the ASP.NET validation controls) to add client functionality.
VS4.8.1. Add dynamic features to a page by using JavaScript. [Exam 70-515 and 70-523 only] -
This objective may include but is not limited to:
VS4.8.1.1. referencing client ID; [Exam 70-515 and 70-523 only] - You can reference controls by ID in client script.
VS4.8.1.2. Script Manager; [Exam 70-515 and 70-523 only] - The ScriptManager control manages client script for AJAX-enabled ASP.NET Web pages. By default, the ScriptManager control registers the script for the Microsoft Ajax Library with the page. This enables client script to use the type system extensions and to support features such as partial-page rendering and Web-service calls.
VS4.8.1.3. Script combining; [Exam 70-515 and 70-523 only] - In an ASP.NET AJAX application, the client behavior of controls is defined by using JavaScript files. Typically, a single JavaScript file defines the client behavior for a single control. If a Web page contains several controls, the browser must download several JavaScript files. The time it takes to download a single file is minimal. However, when a Web page contains many controls, the time that is required to download multiple files can affect the perceived performance of the page. A solution is to combine multiple JavaScript files into a single file, referred to as a composite script. This reduces the number of browser requests. The result is faster download times for the user and less load on the Web server. ASP.NET AJAX enables you to combine multiple JavaScript files into a single composite script by using composite script references in the ScriptManager control or ScriptManagerProxy control. If scripts involve dependencies, such as scripts that call functions in other scripts, you must manage the scripts so that they are registered in the appropriate order. If the browser supports script compression, a composite script will be automatically compressed before it is sent to the browser. The only exception is Microsoft Internet Explorer 6.0, to which ASP.NET always sends the scripts uncompressed.
VS4.8.1.4. Page.clientscript.registerclientscriptblock; [Exam 70-515 and 70-523 only] - Registers the client script with the Page object.
VS4.8.1.5. Page.clientscript.registerclientscriptinclude; [Exam 70-515 and 70-523 only] - Registers the client script include with the Page object.
VS4.8.1.6. sys.require (scriptloader) [Exam 70-515 and 70-523 only] -
This objective does not include: interacting with the server; referencing JavaScript files; inlining JavaScript
VS4.8.2. Alter a page dynamically by manipulating the DOM. [Exam 70-515 only] -
This objective may include but is not limited to:
VS4.8.2.1. using jQuery, adding, modifying, or removing page elements, adding effects, jQuery selectors [Exam 70-515 only] -
This objective does not include: AJAX
VS4.8.3. Handle JavaScript events. [Exam 70-515 only] -
This objective may include but is not limited to:
VS4.8.3.1. DOM events, [Exam 70-515 only] -
VS4.8.3.2. custom events, [Exam 70-515 only] -
VS4.8.3.3. handling events by using jQuery [Exam 70-515 only] -
VS4.8.4. Implement ASP.NET AJAX. [Exam 70-515 and 70-523 only] -
This objective may include but is not limited to:
VS4.8.4.1. client-side templating, [Exam 70-515 and 70-523 only] -
VS4.8.4.2. creating a script service, [Exam 70-515 only] - Visual Studio 2010 and Microsoft Visual Web Developer Express let you create ASP.NET custom Web services (.asmx files) that you can access from client script.
VS4.8.4.3. extenders (ASP.NET AJAX Control Toolkit), [Exam 70-515 and 70-523 only] - Microsoft Ajax extender controls enhance the client capabilities of standard ASP.NET Web server controls. You can target standard Web server controls such as TextBox controls, Button controls, and Panel controls by using one or more extender controls to provide a richer user experience in the browser. For example, to let users confirm before they submit a form to the server, you can use an extender control that adds client functionality to a Button control.
VS4.8.4.4. interacting with the server, [Exam 70-515 and 70-523 only] -
VS4.8.4.5. Microsoft AJAX Client Library, [Exam 70-515 and 70-523 only] - The Microsoft Ajax Library includes a rich framework to simplify client programming.
VS4.8.4.6. custom extenders; [Exam 70-515 and 70-523 only] - Extender controls that derive from the ExtenderControl class require a ScriptManager control to be on the page. The ExtenderControl base class performs an explicit test to make sure that a ScriptManager control exists on the page. However, if you want to create extender controls and the page does not contain an ScriptManager control, you can create a class that implements the IExtenderControl interface directly. Additionally, if you are creating a class that derives from Control or you are extending an existing control that derives from Control, you can implement the IExtenderControl interface to support client functionality. The IExtenderControl interface registers the script libraries for a control by calling the GetScriptReferences method, and it registers ScriptDescriptor objects by calling the GetScriptDescriptors method. The GetScriptDescriptors method returns an IEnumerable list of ScriptDescriptor objects.
VS4.8.4.7. multiple update panels; [Exam 70-515 and 70-523 only] - By using multiple UpdatePanel controls on a page, you can incrementally update regions of the page separately or together.
VS4.8.4.8. triggers; [Exam 70-515 and 70-523 only] - The Triggers property gets a collection of all the triggers that have been defined for the UpdatePanel control. (You can define triggers declaratively by using the UpdatePanelTrigger Collection Editor dialog box in the designer or by using the <Triggers> element of the UpdatePanel control.) The collection includes AsyncPostBackTrigger and PostBackTrigger objects.
VS4.8.4.9. UpdatePanel.UpdateMode; [Exam 70-515 and 70-523 only] - UpdatePanel controls work by specifying regions of a page that can be updated without refreshing the whole page. The content of an UpdatePanel control is updated in the following circumstances:
· If the UpdateMode property is set to Always, the UpdatePanel control's content is updated on every postback that originates from anywhere on the page. This includes asynchronous postbacks from controls that are inside other UpdatePanel controls and postbacks from controls that are not inside UpdatePanel controls.
· If the UpdatePanel control is nested inside another UpdatePanel control and the parent update panel is updated.
· If the UpdateMode property is set to Conditional, and one of the following conditions occurs:
· You call the Update method of the UpdatePanel control explicitly.
· The postback is caused by a control that is defined as a trigger by using the Triggers property of the UpdatePanel control. In this scenario, the control explicitly triggers an update of the panel content. The control can be either inside or outside the UpdatePanel control that defines the trigger.
· The ChildrenAsTriggers property is set to true and a child control of the UpdatePanel control causes a postback. A child control of a nested UpdatePanel control does not cause an update to the outer UpdatePanel control unless it is explicitly defined as a trigger.
VS4.8.4.10. Timer [Exam 70-515 and 70-523 only] - The Microsoft Ajax Timer control performs postbacks at defined intervals. If you use the Timer control with an UpdatePanel control, you can enable partial-page updates at a defined interval. You can also use the Timer control to post the whole page.
This objective does not include: basic update panel and progress
VS4.8.5. Implement AJAX by using jQuery. [Exam 70-515 only] -
This objective may include but is not limited to:
VS4.8.5.1. $.get, [Exam 70-515 only] -
VS4.8.5.2. $.post, [Exam 70-515 only] -
VS4.8.5.3. $.getJSON, [Exam 70-515 only] -
VS4.8.5.4. $.ajax, [Exam 70-515 only] -
VS4.8.5.5. xml, [Exam 70-515 only] -
VS4.8.5.6. html, [Exam 70-515 only] -
VS4.8.5.7. JavaScript Object Notation (JSON), [Exam 70-515 only] - JSON is an open, text-based data exchange format (see RFC 4627). Like XML, it is human-readable, platform independent, and enjoys a wide availability of implementations. Data formatted according to the JSON standard is lightweight and can be parsed by JavaScript implementations with incredible ease, making it an ideal data exchange format for Ajax web applications. Since it is primarily a data format, JSON is not limited to just Ajax web applications, and can be used in virtually any scenario where applications need to exchange or store structured information as text.
VS4.8.5.8. handling return types [Exam 70-515 only] -
This objective does not include: creating a service
VS4.9. Configuring and Extending a Web Application (15%) [~11 questions] [Exam 70-515 and 70-523 only] -
VS4.9.1. Configure authentication and authorization. [Exam 70-515 and 70-523 only] -
This objective may include but is not limited to:
VS4.9.1.1. using membership, [Exam 70-515 and 70-523 only] - ASP.NET membership enables you to validate and manage user information for your Web application. It provides functionality for validating user credentials, creating and modifying membership users, and managing user settings such as passwords and e-mail addresses. ASP.NET membership is primarily intended for use with ASP.NET forms authentication, but can be used anywhere within an ASP.NET application. ASP.NET membership enables you to manage user authentication for your application while keeping the user information in the data source of your choice. Because ASP.NET membership uses providers to the membership data source, it does not require extensive code to read and write membership information. ASP.NET membership consists primarily of built-in membership providers, which communicate with the data source, and the static Membership class that exposes the functionality of the membership providers. You call the Membership class from your ASP.NET code to perform user validation and management.
VS4.9.1.2. using login controls, [Exam 70-515 and 70-523 only] - ASP.NET provides robust login (authentication) functionality for ASP.NET Web applications without requiring programming. The default Visual Studio project templates for Web applications and for Web sites include prebuilt pages that let users register a new account, log in, and change their passwords For information about how to use the built-in login page templates, see Walkthrough: Creating an ASP.NET Web Site with Basic User Login.
VS4.9.1.3. roles, [Exam 70-515 and 70-523 only] - ASP.NET role management helps you to manage authorization, allowing you to specify which resources various users in your application are allowed to access. Role management lets you group users by assigning them to roles.
VS4.9.1.4. location element, [Exam 70-515 and 70-523 only] - The location element specifies the resource that child configuration settings apply to and is also used to lock configuration settings, preventing the settings from being overridden by child configuration files. The location element can enclose other elements, either to apply configuration settings to a specific resource or to lock the settings. For more information, see Configuring Specific Files and Subdirectories and Locking Configuration Settings.
VS4.9.1.5. protecting an area of a site or a page [Exam 70-515 and 70-523 only] - By using the location element with an appropriate value for the path attribute, you can apply configuration settings to specific folders and files. The path attribute can be used to identify a specific file or child directory to which unique configuration settings apply. Only one file path can be used in the path attribute. The location element takes precedence over any ASP.NET configuration setting in the current Web.config file.
This objective does not include: Windows Live; Microsoft Passport; Windows and Forms authentication
VS4.9.2. Configure providers. [Exam 70-515 only] -
This objective may include but is not limited to:
VS4.9.2.1. role, [Exam 70-515 only] - Role management services use the provider model to separate the functionality of role management — the API — from the data store that contains role information. The .NET Framework includes the following providers that maintain role information in different data stores:
· SQL Server. Role information is stored in a SQL Server database. The SQL provider is suitable for medium to large Internet applications. This is the default provider.
· Windows (WindowsToken). Role information is based on Windows accounts (users and groups). The Windows provider is useful only if your application runs on a network where all users have domain accounts.
· Authorization Manager (AzMan). Role information is managed using an Authorization Manager XML file or a directory-based policy store.
You specify a provider by setting the defaultProvider attribute when you configure role management in your application's Web.config file.
VS4.9.2.2. membership, [Exam 70-515 only] - By using a provider model, you can easily adapt the membership system to use different data stores or data stores with different schemas. In addition, you can extend the membership system by creating a custom provider, which you might do to create an interface between the membership system and an existing user database. An important feature of the tiered membership model is that applications that use the membership system are not bound to a specific data store. If necessary, you can switch the underlying membership data store in your application without changing any application code by simply configuring the application to use a different membership provider. (And of course by migrating any existing user information, if applicable.) For example, if you already have a database containing user information, a provider can be written to take advantage of that data and the Membership APIs can then invoke that provider to perform membership tasks. ASP.NET ships with two membership providers: one that uses Microsoft SQL Server as a data source and another that uses Windows Active Directory. Third parties might make membership providers available for other databases, such as Oracle, or for SQL Server databases that have a different schema than that used by ASP.NET providers.
VS4.9.2.3. personalization, [Exam 70-515 only] -
VS4.9.2.4. aspnet_regsql.exe [Exam 70-515 only] - The ASP.NET SQL Server registration tool (Aspnet_regsql.exe) is used to create a Microsoft SQL Server database that is used by the SQL Server providers in ASP.NET. The tool is also used to add or remove options from an existing database. You can run Aspnet_regsql.exe without any command-line arguments to run a wizard that will walk you through specifying connection information for your SQL Server installation, and installing or removing the database elements for the membership, role management, profile, Web Parts personalization, and health monitoring features.
This objective does not include: creating custom providers
VS4.9.3. Create and configure HttpHandlers and HttpModules. [Exam 70-515 only] - An ASP.NET HTTP handler is the process (frequently referred to as the "endpoint") that runs in response to a request made to an ASP.NET Web application. The most common handler is an ASP.NET page handler that processes .aspx files. When users request an .aspx file, the request is processed by the page through the page handler. You can create your own HTTP handlers that render custom output to the browser. An HTTP module is an assembly that is called on every request that is made to your application. HTTP modules are called as part of the ASP.NET request pipeline and have access to life-cycle events throughout the request. HTTP modules let you examine incoming and outgoing requests and take action based on the request.
This objective may include but is not limited to:
VS4.9.3.1. generic handlers, [Exam 70-515 only] -
VS4.9.3.2. asynchronous handlers, [Exam 70-515 only] - An HTTP handler can be either synchronous or asynchronous. A synchronous handler does not return until it finishes processing the HTTP request for which it is called. An asynchronous handler runs a process independently of sending a response to the user. Asynchronous handlers are useful when you must start an application process that might be lengthy and the user does not have to wait until it finishes before receiving a response from the server. When you create an asynchronous handler, you must implement the IHttpAsyncHandler interface. You must also implement the BeginProcessRequest method in order to initiate an asynchronous call that processes individual HTTP requests. In addition, you must implement the EndProcessRequest method to run cleanup code when the process ends.
VS4.9.3.3. setting MIME types and other content headers, [Exam 70-515 only] -
VS4.9.3.4. wiring modules to application events [Exam 70-515 only] -
VS4.9.4. Configure initialization and error handling. [Exam 70-515 only] -
This objective may include but is not limited to:
VS4.9.4.1. handling Application_Start, [Exam 70-515 only] - Called when the first resource (such as a page) in an ASP.NET application is requested. The Application_Start method is called only one time during the life cycle of an application. You can use this method to perform startup tasks such as loading data into the cache and initializing static values.
You should set only static data during application start. Do not set any instance data because it will be available only to the first instance of the HttpApplication class that is created.
VS4.9.4.2. Session_Start, [Exam 70-515 only] -
VS4.9.4.3. and Application_BeginRequest in global.asax, [Exam 70-515 only] - The BeginRequest event signals the creation of any given new request. This event is always raised and is always the first event to occur during the processing of a request.
VS4.9.4.4. capturing unhandled exceptions, [Exam 70-515 only] – The HttpApplication.Error event occurs when an unhandled exception is thrown. The exception that raises the Error event can be accessed by a call to the GetLastError method. If your application generates custom error output, suppress the default error message that is generated by ASP.NET by a call to the ClearError method.
VS4.9.4.5. custom error section of web.config, [Exam 70-515 only] - The customErrors element, which provides information about custom error messages for an ASP.NET application, can be defined at any level in the application file hierarchy.
VS4.9.4.6. redirecting to an error page; [Exam 70-515 only] -
<customErrors defaultRedirect="url" mode="On|Off|RemoteOnly">
<error. . ./>
</customErrors>
defaultRedirect specifies the default URL to direct a browser to, if an error occurs. When this attribute is not specified, a generic error is displayed instead. The URL can be absolute (for example, www.contoso.com/ErrorPage.htm) or relative. A relative URL, such as /ErrorPage.htm, is relative to the Web.config file that specified the URL for this attribute, not to the Web page in which the error occurred. A URL starting with a tilde (~), such as ~/ErrorPage.htm, indicates that the specified URL is relative to the root path of the application.
VS4.9.4.7. try and catch; [Exam 70-515 only] -
VS4.9.4.8. creating custom exceptions [Exam 70-515 only] - The following guidelines help ensure that your custom exceptions are correctly designed.
* Avoid deep exception hierarchies. For more information, see Types and Namespaces.
* Do derive exceptions from System.Exception or one of the other common base exceptions. Note that Catching and Throwing Standard Exception Types has a guideline that states that you should not derive custom exceptions from ApplicationException.
* Do end exception class names with the Exception suffix. Consistent naming conventions help lower the learning curve for new libraries.
* Do make exceptions serializable. An exception must be serializable to work correctly across application domain and remoting boundaries. For information about making a type serializable, see Serialization.
* Do provide (at least) the following common constructors on all exceptions. Make sure the names and types of the parameters are the same those used in the code example.
* Do report security-sensitive information through an override of System.Object.ToString only after demanding an appropriate permission. If the permission demand fails, return a string that does not include the security-sensitive information.
* Do store useful security-sensitive information in private exception state. Ensure that only trusted code can get the information.
* Consider providing exception properties for programmatic access to extra information (besides the message string) relevant to the exception.
VS4.9.5. Reference and configure ASMX and WCF services. [Exam 70-515 only] -
This objective may include but is not limited to:
VS4.9.5.1. adding service reference, [Exam 70-515 only] - The Add Service Reference dialog box enables you to add references to Windows Communication Foundation (WCF) services and WCF Data Services. If you know the address where the service is hosted, enter the URL in the Address field and then click Go to return a list of available services.
VS4.9.5.2. adding Web reference, [Exam 70-515 only] - XML Web Services, also known as ASMX services, were the predecessor of Windows Communication Foundation (WCF). You can access Web services by adding a service reference just as you would for any other WCF service. Any references added in this manner will target the latest version of the .NET Framework. For applications that were created in an earlier version of Visual Studio, you can still add a Web reference that targets version 2.0 of the .NET Framework.
VS4.9.5.3. changing endpoints, [Exam 70-515 only] - Endpoints provide clients with access to the functionality a Windows Communication Foundation (WCF) service offers. You can define one or more endpoints for a service by using a combination of relative and absolute endpoint addresses, or if you do not define any service endpoints, the runtime provides some by default for you.
VS4.9.5.4. wsdl.exe, [Exam 70-515 only] - The Web Services Description Language tool generates code for XML Web services and XML Web service clients from WSDL contract files, XSD schemas, and .discomap discovery documents.
VS4.9.5.5. svcutil.exe; [Exam 70-515 only] - The ServiceModel Metadata Utility tool is used to generate service model code from metadata documents and metadata documents from service model code.
VS4.9.5.6. updating service URL; [Exam 70-515 only] -
VS4.9.5.7. shared WCF contracts assembly [Exam 70-515 only] -
This objective does not include: creating WCF and ASMX services
VS4.9.6. Configure projects and solutions, and reference assemblies. [Exam 70-515 only] -
This objective may include but is not limited to:
VS4.9.6.1. local assemblies, [Exam 70-515 only] -
VS4.9.6.2. shared assemblies (global assembly cache), [Exam 70-515 only] -
VS4.9.6.3. Web application projects, [Exam 70-515 only] - You can create ASP.NET Web application projects using Visual Studio or Visual Web Developer Express. The Web application project type is an alternative to the Web site project. It uses a build model that creates a single assembly for the whole project. For more information, see Web Application Projects versus Web Site Projects.
VS4.9.6.4. solutions, [Exam 70-515 only] -
VS4.9.6.5. settings file, [Exam 70-515 only] -
VS4.9.6.6. configuring a Web application by using web.config or multiple .config files; [Exam 70-515 only] - ASP.NET configuration files are XML files. The .NET Framework defines a set of elements that implement configuration settings, and the ASP.NET configuration schema contains elements that control how ASP.NET Web applications behave. Default configuration settings are specified in the Machine.config file located in the %SystemRoot%\Microsoft.NET\Framework\versionNumber\CONFIG\ directory. Values are inherited by child sites and applications. If there is a configuration file in a child site or application, the inherited values do not appear, but can be overridden and are available to the configuration API.
VS4.9.6.7. assemblyinfo [Exam 70-515 only] - ASP.NET automatically links assemblies to a resource when compiling each code module. An AssemblyInfo object references an assembly to be linked to during compilation of a dynamic resource.
An assembly is a collection of types and resources that are built to work together and form a logical unit of functionality. An assembly provides the common language runtime with the information it needs to identify type implementations. To the runtime, a type does not exist outside the context of an assembly.
VS4.9.7. Debug a Web application. [Exam 70-515 and 70-523 only] - ASP.NET is the primary technology for developing Web applications in Visual Studio. The Visual Studio debugger provides powerful tools for debugging ASP.NET Web applications locally or on a remote server. This topic describes how to debug a ASP.NET project during development. For information about how to debug a ASP.NET Web application already deployed on a production server, see Debugging Deployed Web Applications.
This objective may include but is not limited to:
VS4.9.7.1. remote, [Exam 70-515 and 70-523 only] - With the Visual Studio debugger, you can debug a Web application transparently on the local computer or a remote server. This means that the debugger functions the same way and allows you to use the same features on either computer. For remote debugging to work correctly, however, there are some prerequisites.
· Visual Studio remote debugging components must be installed on the server you want to debug. For more information, see Setting Up Remote Debugging.
· By default, the ASP.NET worker process runs as an ASPNET user process. As a result, you must have Administrator privileges on the computer where ASP.NET runs to debug it. The name of the ASP.NET worker process varies by debug scenario and version of IIS. For more information, see How to: Find the Name of the ASP.NET Process.
VS4.9.7.2. local, [Exam 70-515 and 70-523 only] - To debug a ASP.NET application:
· You must have required permissions. For more information, see ASP.NET Debugging: System Requirements.
· ASP.NET debugging must be enabled in Project Properties.
· The configuration file of your application (Web.config) must be set to debug mode. Debug mode causes ASP.NET to generate symbols for dynamically generated files and enables the debugger to attach to the ASP.NET application. Visual Studio sets this automatically when you start to debug, if you created your project from the Web projects template.
· For more information, see How to: Enable Debugging for ASP.NET Applications.
VS4.9.7.3. JavaScript debugging, [Exam 70-515 and 70-523 only] - To begin debugging script in Visual Studio, the debugger must attach to the script you want to debug. This can happen manually or automatically.
VS4.9.7.4. attaching to process, [Exam 70-515 and 70-523 only] - The Visual Studio debugger has the ability to attach to a process that is running outside of Visual Studio. You can use this attach capability to do the following:
· Debug an application that was not created in Visual Studio.
· Debug multiple processes simultaneously. You can also debug multiple processes by starting multiple projects within a single solution.
· Debug a process running on a remote computer.
· Debug a DLL that runs in a separate process that cannot easily be started from Visual Studio, for example, a service or an ISAPI DLL running with Internet Information Services.
· Start the debugger automatically when a process crashes while running outside of Visual Studio. This is Just-In-Time debugging.
After you have attached to a program, you can use debugger execution commands, inspect the program state, and so on. For more information, see Execution Control and Viewing Data in the Debugger. Your ability to inspect the program may be limited, of course, depending on whether the program was built with debug information and whether you have access to the program's source code, and whether the common language runtime JIT compiler is tracking debug information.
VS4.9.7.5. logging and tracing, [Exam 70-515 and 70-523 only] - The Assembly Binding Log Viewer (Fuslogvw.exe) displays details for assembly binds. This information helps you diagnose why the .NET Framework cannot locate an assembly at run time. These failures are usually the result of an assembly deployed to the wrong location, a native image that is no longer valid, or a mismatch in version numbers or cultures. The common language runtime's failure to locate an assembly typically shows up as a TypeLoadException in your application.
VS4.9.7.6. using local IIS, [Exam 70-515 and 70-523 only] -
VS4.9.7.7. aspnet_regiis.exe [Exam 70-515 and 70-523 only] - The ASP.NET IIS Registration tool (Aspnet_regiis.exe) is used to register ASP.NET applications with Internet Information Services (IIS). This topic describes the options, syntax, and other information for using the tool.
Using the ASP.NET IIS Registration tool, you can perform tasks such as the following:
· Register or remove the .NET Framework ASP.NET installation with IIS.
· Create new ASP.NET application pools.
· Display the status of all installed versions of ASP.NET.
VS4.9.8. Deploy a Web application. [Exam 70-515 only] -
This objective may include but is not limited to:
VS4.9.8.1. pre-compilation, [Exam 70-515 only] - Precompiling an ASP.NET Web site project provides faster initial response time for users since pages do not have to be compiled the first time they are requested. This is particularly useful for large Web sites that are updated frequently.
The procedure in this topic uses the switches and parameters of the ASP.NET Compilation Tool (Aspnet_compiler.exe). For more information about this tool, see ASP.NET Compilation Tool (Aspnet_compiler.exe).
For more information about precompilation, see ASP.NET Precompilation Overview
VS4.9.8.2. publishing methods (e.g., MSDeploy, xcopy, and FTP), [Exam 70-515 only] - After you have created an ASP.NET Web application project or an ASP.NET Web site project in Visual Studio 2010, you typically deploy the project to a Web server where others can access your application. Deployment typically involves more than just copying the application's files from one server to another. You might also have to perform additional tasks, such as the following:
· Changing Web.config file settings that must be different in the destination environment, such as settings for debugging, or database connection strings.
· Propagating data or data structures in databases that are used by the Web application.
· Configuring IIS settings on the destination computer, such as the application pool, the authentication method, whether directory browsing is allowed, and error handling.
· Installing security certificates.
· Setting values in the registry of the destination computer.
· Installing application assemblies in the global assembly cache (GAC) on the destination computer.
VS4.9.8.3. deploying an MVC application [Exam 70-515 only] - If your hosting provider already has ASP.NET MVC 1.0 installed on the hosting server, deploying your MVC application is no different that deploying any ASP.NET Web application. However, if the hosting provider does not currently support ASP.NET MVC 1.0, you must upload the required MVC assemblies in the Bin folder of your deployed application.
This objective does not include: application pools, IIS configuration
VS4.10. Displaying and Manipulating Data (19%) [~14 questions] [Exam 70-515 and 70-523 only] -
VS4.10.1. Implement data-bound controls. [Exam 70-515 and 70-523 only] -
This objective may include but is not limited to:
VS4.10.1.1. advanced customization of DataList, [Exam 70-515 and 70-523 only] - Use the DataList control to display a template-defined data bound list. The DataList control supports selecting and editing.
VS4.10.1.2. Repeater, [Exam 70-515 and 70-523 only] - The Repeater control is a basic templated data-bound list. It has no built-in layout or styles, so you must explicitly declare all layout, formatting, and style tags within the control's templates. The Repeater control allows you to split markup tags across the templates. To create a table using templates, include the begin table tag (<table>) in the HeaderTemplate, a single table row tag (<tr>) in the ItemTemplate, and the end table tag (</table>) in the FooterTemplate. The Repeater control has no built-in selection capabilities or editing support. You can use the ItemCommand event to process control events that are raised from the templates to the control.
VS4.10.1.3. ListView, [Exam 70-515 and 70-523 only] - The ListView control is used to display the values from a data source. It resembles the GridView control, except that it displays data by using user-defined templates instead of row fields. Creating your own templates gives you more flexibility in controlling how the data is displayed.
VS4.10.1.4. FormsView, [Exam 70-515 and 70-523 only] - The FormView control is used to display a single record from a data source. It is similar to the DetailsView control, except it displays user-defined templates instead of row fields. Creating your own templates gives you greater flexibility in controlling how the data is displayed. The FormView control supports the following features:
· Binding to data source controls, such as SqlDataSource and ObjectDataSource.
· Built-in inserting capabilities.
· Built-in updating and deleting capabilities.
· Built-in paging capabilities.
· Programmatic access to the FormView object model to dynamically set properties, handle events, and so on.
· Customizable appearance through user-defined templates, themes, and styles.
VS4.10.1.5. DetailsView, [Exam 70-515 and 70-523 only] - The DetailsView control is used to display a single record from a data source in a table, where each field of the record is displayed in a row of the table. It can be used in combination with a GridView control for master-detail scenarios. The DetailsView control supports the following features:
· Binding to data source controls, such as SqlDataSource.
· Built-in inserting capabilities.
· Built-in updating and deleting capabilities.
· Built-in paging capabilities.
· Programmatic access to the DetailsView object model to dynamically set properties, handle events, and so on.
· Customizable appearance through themes and styles.
VS4.10.1.6. TreeView, [Exam 70-515 and 70-523 only] - The TreeView control is used to display hierarchical data, such as a table of contents or file directory, in a tree structure and supports the following features:
· Data binding that allows the nodes of the control to be bound to XML, tabular, or relational data.
· Site navigation through integration with the SiteMapDataSource control.
· Node text that can be displayed as either plain text or hyperlinks.
· Programmatic access to the TreeView object model to create trees, populate nodes, set properties, and so on dynamically.
· Client-side node population (on supported browsers).
· The ability to display a check box next to each node.
· Customizable appearance through themes, user-defined images, and styles.
VS4.10.1.7. DataPager, [Exam 70-515 and 70-523 only] - The DataPager class is used to page data and to display navigation controls for data-bound controls that implement the IPageableItemContainer interface. (An example of a control that implements the interface is the ListView control.) You can associate the DataPager control with the data-bound control by using the PagedControlID property. Alternatively, you can put the DataPager control inside the data-bound control hierarchy. For example, in the ListView control, you can put the DataPager control inside the ListView.LayoutTemplate template. You can customize the number of items that are displayed for each page of data by changing the PageSize property. You can also change the way a page is submitted to the server by setting the QueryStringField property.
VS4.10.1.8. Chart, [Exam 70-515 and 70-523 only] -
VS4.10.1.9. GridView [Exam 70-515 and 70-523 only] - The GridView control is used to display the values of a data source in a table. Each column represents a field, while each row represents a record. The GridView control supports the following features:
· Binding to data source controls, such as SqlDataSource.
· Built-in sort capabilities.
· Built-in update and delete capabilities.
· Built-in paging capabilities.
· Built-in row selection capabilities.
· Programmatic access to the GridView object model to dynamically set properties, handle events, and so on.
· Multiple key fields.
· Multiple data fields for the hyperlink columns.
· Customizable appearance through themes and styles.
· To learn about the other data-bound controls that are available in ASP.NET, see ASP.NET Data-Bound Web Server Controls Overview.
This objective does not include: working in Design mode
VS4.10.2. Implement DataSource controls. [Exam 70-515 only] -
This objective may include but is not limited to:
VS4.10.2.1. ObjectDataSource, [Exam 70-515 only] - The ObjectDataSource is an ASP.NET data source control that represents a data-aware middle-tier object or a data interface object to data-bound controls. You can use the ObjectDataSource control in conjunction with a data-bound control to display, edit, and sort data on a Web page with little or no code. There is no visual rendering of the ObjectDataSource control. It is implemented as a control so that you can create it declaratively and to enable it to participate in state management, optionally. As a result, the ObjectDataSource does not support visual features such as the EnableTheming or SkinID property.
VS4.10.2.2. LinqDataSource, [Exam 70-515 only] - Language-Integrated Query (LINQ) is a query syntax that defines a set of query operators that enable traversal, filter, and projection operations to be expressed in a declarative way in any .NET-based programming language. The data object can be an in-memory data collection or an object that represents data from a database. You can retrieve or modify the data without having to write SQL commands for each operation. The LinqDataSource control enables you to use LINQ in an ASP.NET Web page by setting properties in markup text. The LinqDataSource control uses LINQ to SQL to automatically generate the data commands. For more information about LINQ to SQL, see LINQ to SQL. When you are retrieving data from an in-memory data collection, you set the ContextTypeName property to the class that contains the data collection. You set the TableName property to the property or field that returns the data collection. For example, you might have a class named Person that contains a property named FavoriteCities that returns an array of string values. In that case, you set the ContextTypeName property to Person and set the TableName property to FavoriteCities. When you are querying a database, you must first create entity classes that represent the database and its tables. You can use the Object Relational Designer or the SqlMetal.exe utility to generate these classes. You then set the ContextTypeName property to the class that represents the database and set the TableName property to the property that represents the database table.
VS4.10.2.3. XmlDataSource, [Exam 70-515 only] - The XmlDataSource control is a data source control that presents XML data to data-bound controls. The XmlDataSource control can be used by data-bound controls to display both hierarchical and tabular data. The XmlDataSource control is typically used to display hierarchical XML data in read-only scenarios. Because the XmlDataSource control extends the HierarchicalDataSourceControl class, it works with hierarchical data. The XmlDataSource control also implements the IDataSource interface and works with tabular, or list-style, data.
VS4.10.2.4. SqlDataSource, [Exam 70-515 only] - The SqlDataSource data source control represents data in an SQL relational database to data-bound controls. You can use the SqlDataSource control in conjunction with a data-bound control to retrieve data from a relational database and to display, edit, and sort data on a Web page with little or no code.
VS4.10.2.5. QueryExtender, [Exam 70-515 only] - The QueryExtender control is used to create filters for data that is retrieved from a data source, without using an explicit Where clause in the data source. The QueryExtender control can be used to specify filtering by using declarative syntax.
VS4.10.2.6. EntityDataSource [Exam 70-515 only] - You can use the EntityDataSource control together with a data-bound control to retrieve data from an EDM and to display, edit, and sort data on a Web page by using little or no code. For more information, see EntityDataSource Web Server Control Overview.
This objective does not include: AccessDataSource, SiteMapDataSource
VS4.10.3. Query and manipulate data by using LINQ. [Exam 70-515 and 70-523 only] - Language-Integrated Query (LINQ) is a set of features introduced in Visual Studio 2008 that extends powerful query capabilities to the language syntax of C# and Visual Basic. LINQ introduces standard, easily-learned patterns for querying and updating data, and the technology can be extended to support potentially any kind of data store. Visual Studio includes LINQ provider assemblies that enable the use of LINQ with .NET Framework collections, SQL Server databases, ADO.NET Datasets, and XML documents.
This objective may include but is not limited to:
VS4.10.3.1. transforming data by using LINQ to create XML or JSON, [Exam 70-515 and 70-523 only] - LINQ to XML is an up-to-date, redesigned approach to programming with XML. It provides the in-memory document modification capabilities of the Document Object Model (DOM), and supports LINQ query expressions. Although these query expressions are syntactically different from XPath, they provide similar functionality.
VS4.10.3.2. LINQ to SQL, [Exam 70-515 and 70-523 only] - In LINQ to SQL, the data model of a relational database is mapped to an object model expressed in the programming language of the developer. When the application runs, LINQ to SQL translates into SQL the language-integrated queries in the object model and sends them to the database for execution. When the database returns the results, LINQ to SQL translates them back to objects that you can work with in your own programming language.
VS4.10.3.3. LINQ to Entities, [Exam 70-515 and 70-523 only] - LINQ to Entities provides Language-Integrated Query (LINQ) support that enables developers to write queries against the Entity Framework conceptual model using Visual Basic or Visual C#. Queries against the Entity Framework are represented by command tree queries, which execute against the object context. LINQ to Entities converts Language-Integrated Queries (LINQ) queries to command tree queries, executes the queries against the Entity Framework, and returns objects that can be used by both the Entity Framework and LINQ. The following is the process for creating and executing a LINQ to Entities query:
1. Construct an ObjectQuery instance from ObjectContext.
2. Compose a LINQ to Entities query in C# or Visual Basic by using the ObjectQuery instance.
3. Convert LINQ standard query operators and expressions to command trees.
4. Execute the query, in command tree representation, against the data source. Any exceptions thrown on the data source during execution are passed directly up to the client.
5. Return query results back to the client.
VS4.10.3.4. LINQ to objects, [Exam 70-515 and 70-523 only] - The term "LINQ to Objects" refers to the use of LINQ queries with any IEnumerable or IEnumerable(Of T) collection directly, without the use of an intermediate LINQ provider or API such as LINQ to SQL or LINQ to XML. You can use LINQ to query any enumerable collections such as List(Of T), Array, or Dictionary(Of TKey, TValue). The collection may be user-defined or may be returned by a .NET Framework API.
VS4.10.3.5. managing DataContext lifetime [Exam 70-515 and 70-523 only] - The DataContext is the source of all entities mapped over a database connection. It tracks changes that you made to all retrieved entities and maintains an "identity cache" that guarantees that entities retrieved more than one time are represented by using the same object instance. In general, a DataContext instance is designed to last for one "unit of work" however your application defines that term. A DataContext is lightweight and is not expensive to create. A typical LINQ to SQL application creates DataContext instances at method scope or as a member of short-lived classes that represent a logical set of related database operations.
This objective does not include: basic LINQ to SQL
VS4.10.4. Create and consume a data service. [Exam 70-515 only] -
This objective may include but is not limited to:
VS4.10.4.1. WCF, [Exam 70-515 only] - Windows Communication Foundation (WCF) is Microsoft’s unified programming model for building service-oriented applications. It enables developers to build secure, reliable, transacted solutions that integrate across platforms and interoperate with existing investments. Microsoft ASP.NET AJAX enables you to quickly create Web pages that include a rich user experience with responsive and familiar user interface elements. ASP.NET AJAX provides client-script libraries that incorporate cross-browser ECMAScript (JavaScript) and dynamic HTML (DHTML) technologies, and it integrates them with the ASP.NET 2.0 server-based development platform. By using ASP.NET AJAX, you can improve the user experience and the efficiency of your Web applications.
VS4.10.4.2. Web service; [Exam 70-515 only] - Web services are components on a Web server that a client application can call by making HTTP requests across the Web. ASP.NET enables you to create custom Web services or to use built-in application services, and to call these services from any client application.
VS4.10.4.3. server to server calls; [Exam 70-515 only] -
VS4.10.4.4. JSON serialization, [Exam 70-515 only] - You can use the DataContractJsonSerializer to serialize and deserialize data in the JavaScript Object Notation (JSON) format. This serialization engine converts JSON data into instances of .NET Framework types and back into JSON data. DataContractJsonSerializer supports the same types as DataContractSerializer. The JSON data format is especially useful when writing Asynchronous JavaScript and XML (AJAX)-style Web applications. AJAX support in Windows Communication Foundation (WCF) is optimized for use with ASP.NET AJAX through the ScriptManager control. For examples of how to use Windows Communication Foundation (WCF) with ASP.NET AJAX, see the AJAX Samples.
VS4.10.4.5. XML serialization [Exam 70-515 only] - XML serialization converts (serializes) the public fields and properties of an object, or the parameters and return values of methods, into an XML stream that conforms to a specific XML Schema definition language (XSD) document. XML serialization results in strongly typed classes with public properties and fields that are converted to a serial format (in this case, XML) for storage or transport. Because XML is an open standard, the XML stream can be processed by any application, as needed, regardless of platform. For example, XML Web services created using ASP.NET use the XmlSerializer class to create XML streams that pass data between XML Web service applications throughout the Internet or on intranets. Conversely, deserialization takes such an XML stream and reconstructs the object. XML serialization can also be used to serialize objects into XML streams that conform to the SOAP specification. SOAP is a protocol based on XML, designed specifically to transport procedure calls using XML. To serialize or deserialize objects, use the XmlSerializer class. To create the classes to be serialized, use the XML Schema Definition tool.
This objective does not include: client side, ADO.NET Data Services
VS4.10.5. Create and configure a Dynamic Data project. [Exam 70-515 only] - ASP.NET Dynamic Data lets you create extensible data-driven Web applications by inferring at run time the appearance and behavior of data entities from the database schema and deriving UI behavior from it. Dynamic Data supports scaffolding, which is a way to automatically generate Web pages for each table in the database. Scaffolding lets you create a functional Web site for viewing and editing data based on the schema of the data. You can easily customize scaffolding elements or create new ones to override the default behavior. You can also enable dynamic behavior in existing or new Web applications without using scaffolding. In that case, you specify how and when Dynamic Data should infer UI elements from the data source without using scaffolding for the entire Web site.
This objective may include but is not limited to:
VS4.10.5.1. dynamic data controls, [Exam 70-515 only] - The System.Web.DynamicData namespace contains classes that provide the core functionality for ASP.NET Dynamic Data. It also provides extensibility features that let you customize dynamic data behavior.
VS4.10.5.2. custom field templates; [Exam 70-515 only] - Field templates are user controls that render the UI for individual data fields. By default, Dynamic Data selects a field template based on the data type of the field that is being displayed. For example, to display Boolean data, Dynamic Data uses the Boolean field template; to display text data, Dynamic Data uses a text field template; and so on. There is typically one field template to display data, and a different template that lets users enter or edit field values.
VS4.10.5.3. connecting to DataContext and ObjectContext [Exam 70-515 only] - The DataContext is the source of all entities mapped over a database connection. It tracks changes that you made to all retrieved entities and maintains an "identity cache" that guarantees that entities retrieved more than one time are represented by using the same object instance. In general, a DataContext instance is designed to last for one "unit of work" however your application defines that term. A DataContext is lightweight and is not expensive to create. A typical LINQ to SQL application creates DataContext instances at method scope or as a member of short-lived classes that represent a logical set of related database operations.
VS4.11. Developing a Web Application by Using ASP.NET MVC 2 (13%) [~10 questions] [Exam 70-515 and 70-523 only] - The Model-View-Controller (MVC) pattern is an architectural design principle that separates the components of a Web application. This separation gives you more control over the individual parts of the application, which lets you more easily develop, modify, and test them. ASP.NET MVC is part of the ASP.NET framework. Developing an ASP.NET MVC application is an alternative to developing ASP.NET Web Forms pages; it does not replace the Web Forms model. If you have installed Visual Studio 2010, the ASP.NET MVC 2 is already installed on your computer.
VS4.11.1. Create custom routes. [Exam 70-515 only] - ASP.NET routing enables you to use URLs that do not have to map to specific files in a Web site. Because the URL does not have to map to a file, you can use URLs that are descriptive of the user's action and therefore are more easily understood by users. The ASP.NET MVC framework and ASP.NET Dynamic Data extend routing to provide features that are used only in MVC applications and in Dynamic Data applications.
This objective may include but is not limited to:
VS4.11.1.1. route constraints, [Exam 70-515 only] - Constraints are defined by using regular expressions or by using objects that implement the IRouteConstraint interface. When you add the route definition to the Routes collection, you add constraints by creating a RouteValueDictionary object that contains the verification test. The key in the dictionary identifies the parameter that the constraint applies to. The value in the dictionary can be either a string that represents a regular expression or an object that implements the IRouteConstraint interface.
VS4.11.1.2. route defaults, [Exam 70-515 only] - When you define a route, you can assign a default value for a parameter. The default value is used if a value for that parameter is not included in the URL. You set default values for a route by assigning a dictionary object to the Defaults property of the Route class.
VS4.11.1.3. ignore routes, [Exam 70-515 only] – The RouteCollection.Ignore method defines a URL pattern that should not be checked for matches against routes.
VS4.11.1.4. custom route parameters [Exam 70-515 only] -
VS4.11.2. Create controllers and actions. [Exam 70-515 and 70-523 only] - The ASP.NET MVC framework maps URLs to classes that are referred to as controllers. Controllers process incoming requests, handle user input and interactions, and execute appropriate application logic. A controller class typically calls a separate view component to generate the HTML markup for the request.
The base class for all controllers is the ControllerBase class, which provides general MVC handling. The Controller class inherits from ControllerBase and is the default implement of a controller. The Controller class is responsible for the following processing stages:
· Locating the appropriate action method to call and validating that it can be called.
· Getting the values to use as the action method's arguments.
· Handling all errors that might occur during the execution of the action method.
· Providing the default WebFormViewEngine class for rendering ASP.NET page types (views).
This objective may include but is not limited to:
VS4.11.2.1. Visual Studio support for right-click context menus; [Exam 70-515 and 70-523 only] -
VS4.11.2.2. action filters (including Authorize, AcceptVerbs, and custom) and model binders; [Exam 70-515 and 70-523 only] -
VS4.11.2.3. ActionResult sub-classes [Exam 70-515 and 70-523 only] - Encapsulates the result of an action method and is used to perform a framework-level operation on behalf of the action method. An action method responds to user input by performing work and returning an action result. An action result represents a command that the framework will perform on behalf of the action method. The ActionResult class is the base class for action results. The following types derive from ActionResult: ContentResult, EmptyResult, FileResult, HttpUnauthorizedResult, JavaScriptResult, JsonResult, RedirectResult, RedirectToRouteResult, ViewResultBase
VS4.11.3. Structure an ASP.NET MVC application. [Exam 70-515 only] -
This objective may include but is not limited to:
VS4.11.3.1. single project areas (for example, route registration, Visual Studio tooling, and inter-area links); [Exam 70-515 only] -
VS4.11.3.2. organizing controllers into areas; [Exam 70-515 only] -
VS4.11.3.3. shared views; [Exam 70-515 only] -
VS4.11.3.4. content files and folders [Exam 70-515 only] -
VS4.11.4. Create and customize views. [Exam 70-515 and 70-523 only] -
This objective may include but is not limited to:
VS4.11.4.1. built-in and custom HTML helpers (for example, HTML.RenderAction and HTML.RenderPartial), [Exam 70-515 and 70-523 only] - When you create views, many tasks are repetitive or require special MVC framework knowledge. To address these scenarios and to make it easier to render HTML, the MVC framework includes helper classes and members. The design for helper classes is extensible so that you can add custom helper classes and members.
The MVC framework includes the following helpers:
· Form helpers, which are for form elements such as radio buttons, list boxes, select buttons, text boxes, text areas, hidden content, and password fields.
· URL helpers, which let you generate URLs for routing.
· HTML helpers, which include functions to manage HTML strings, such as Encode, Decode, AttributeEncode, and RenderPartial.
You can access code-based rendering helpers by using properties that are added to the ViewPage, ViewUserControl, and ViewMasterPage classes.
VS4.11.4.2. strongly typed views, [Exam 70-515 and 70-523 only] -
VS4.11.4.3. static page checking, [Exam 70-515 and 70-523 only] -
VS4.11.4.4. templated input helpers, [Exam 70-515 and 70-523 only] - Templated helpers provide a way to automatically build UI based on a data model that is marked with attributes defined in the System.ComponentModel.DataAnnotations namespace.
VS4.11.4.5. ViewMasterPage, [Exam 70-515 and 70-523 only] – ViewMasterPage Class represents the information that is needed to build a master view page. ViewMasterPage(Of TModel) Class represents the information that is required in order to build a strongly typed master view page.
VS4.11.4.6. ViewUserControl [Exam 70-515 and 70-523 only] –ViewUserControl Class represents the information that is needed to build a user control. ViewUserControl(Of TModel) Class represents the information that is required in order to build a strongly typed user control.
This objective does not include: Microsoft.Web.Mvc Futures assembly
= = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = =
70-513 TS: Windows Communication Foundation Development with Microsoft® .NET Framework 4
VS4.12. Creating Services (20%) [~15 questions] [Exam 70-513, 70-521, and 70-523 only] - Workflow services are workflows that use the messaging activities to send and receive Windows Communication Foundation (WCF) messages.
VS4.12.1. Create service and operation contracts. [Exam 70-513, 70-521, and 70-523 only] - Services are groups of operations. To create a service contract you must model operations and specify their grouping. In Windows Communication Foundation (WCF) applications, define the operations by creating a method and marking it with the OperationContractAttribute attribute. Then, to create a service contract, group together your operations, either by declaring them within an interface marked with the ServiceContractAttribute attribute, or by defining them in a class marked with the same attribute. Any methods that do not have a OperationContractAttribute attribute are not service operations and are not exposed for use by clients of WCF services. Like any managed method, they can only be called by objects within their declared access scope.
This objective may include but is not limited to:
VS4.12.1.1. one-way, duplex, and request reply; [Exam 70-513, 70-521, and 70-523 only] – A one-way contract can be used to publish notifications to many subscribers. You can also use one-way contracts when creating a duplex (two-way) contract, which allows clients and servers to communicate with each other independently so that either can initiate calls to the other. This can allow, in particular, the server to make one-way calls to the client that the client can treat as events. For detailed information about specifying one-way methods, see the IsOneWay property and the OperationContractAttribute class.
A duplex (two-way) contract allows clients and servers to communicate with each other independently so that either can initiate calls to the other.
A request-reply contract specifies a method that returns a reply. The reply must be sent and correlated to the request under the terms of this contract. Even if the method returns no reply (void in C#, or a Sub in Visual Basic), the infrastructure creates and sends an empty message to the caller. To prevent the sending of an empty reply message, use a one-way contract for the operation.
VS4.12.1.2. creating and specifying fault contracts; [Exam 70-513, 70-521, and 70-523 only] - Mark an operation with the FaultContractAttribute attribute to declare one or more specific exception conditions that are added to the Web Service Description Language (WSDL) description of the service operation as explicit SOAP fault messages returned by the operation.
VS4.12.1.3. configuration-based contracts; [Exam 70-513, 70-521, and 70-523 only] -
VS4.12.1.4. exposing service metadata; [Exam 70-513, 70-521, and 70-523 only] - The Windows Communication Foundation (WCF) provides an infrastructure for exporting, publishing, retrieving, and importing service metadata. WCF services use metadata to describe how to interact with the service's endpoints so that tools, such as Svcutil.exe, can automatically generate client code for accessing the service.
VS4.12.1.5. selecting serialization (e.g., data contract serializer vs. XML serializer) [Exam 70-513, 70-521, and 70-523 only] - The DataContractSerializer translates between .NET Framework objects and XML, in both directions. The XmlSerializer class is not unique to WCF. It is the same serialization engine that ASP.NET Web services use. The XmlSerializer class supports a much narrower set of types than the DataContractSerializer class, but allows much more control over the resulting XML and supports much more of the XML Schema definition language (XSD) standard. It also does not require any declarative attributes on the serializable types.
This objective does not include: designing service and operation contracts; transactions, instantiation, security-related attributes
VS4.12.2. Create data contracts. [Exam 70-513, 70-521, and 70-523 only] - A data contract is a formal agreement between a service and a client that abstractly describes the data to be exchanged. That is, to communicate, the client and the service do not have to share the same types, only the same data contracts. A data contract precisely defines, for each parameter or return type, what data is serialized (turned into XML) to be exchanged.
This objective may include but is not limited to:
VS4.12.2.1. managing Known Types; [Exam 70-513, 70-521, and 70-523 only] - The KnownTypeAttribute class allows you to specify, in advance, the types that should be included for consideration during deserialization.
VS4.12.2.2. controlling data serialization; [Exam 70-513 and 70-521 only] -
VS4.12.2.3. using required and order attributes on data members; [Exam 70-513, 70-521, and 70-523 only] - In some applications, it is useful to know the order in which data from the various data members is sent or is expected to be received (such as the order in which data appears in the serialized XML). Sometimes it may be necessary to change this order.
VS4.12.2.4. implementing versioning using IExtensibleDataObject; [Exam 70-513, 70-521, and 70-523 only] - Provides a data structure to store extra data encountered by the XmlObjectSerializer during deserialization of a type marked with the DataContractAttribute attribute.
VS4.12.2.5. POCOs [Exam 70-513, 70-521, and 70-523 only] - Unmarked types; that is, types to which serialization attributes have not been applied, sometimes referred to as Plain Old CLR Object (POCO) types
This objective does not include: using custom serializer (ISerializationSurrogate)
VS4.12.3. Create message contracts. [Exam 70-513 only] -
This objective may include but is not limited to:
VS4.12.3.1. body and header elements; [Exam 70-513 only] - To define a message contract for a type (that is, to define the mapping between the type and a SOAP envelope), apply the MessageContractAttribute to the type. Then apply the MessageHeaderAttribute to those members of the type you want to make into SOAP headers, and apply the MessageBodyMemberAttribute to those members you want to make into parts of the SOAP body of the message.
VS4.12.3.2. using required and order attributes on members [Exam 70-513 only] -
VS4.12.4. Implement generic message handling. [Exam 70-513 only] -
This objective may include but is not limited to:
VS4.12.4.1. creating a catch-all contract; [Exam 70-513 only] -
VS4.12.4.2. reading and writing messages; [Exam 70-513 only] -
VS4.12.4.3. working with properties; [Exam 70-513 only] -
VS4.12.4.4. working with headers [Exam 70-513 only] -
This objective does not include: inheriting from Message class; using BodyWriter; creating Fault messages
VS4.12.5. Implement RESTful services. [Exam 70-513, 70-521, and 70-523 only] - Representational State Transfer (REST) is an architectural style for interacting with resources and providing a representation of those resources for clients. It is particularly useful for CRUD (create, read, update and delete) commands that interact with system resources. Although REST does not require it, the underlying messaging format is usually XML over HTTP protocol – thus, for the purpose of this discussion REST can be thought of as an extension to POX which describes semantics for how systems should expose functionality. Using classic HTTP verbs (PUT, GET, POST, and DELETE) RESTful implementations are able to distinguish CRUD calls that interact with system resources.
This objective may include but is not limited to:
VS4.12.5.1. accessing HTTP context; [Exam 70-513, 70-521, and 70-523 only] - The WCF WEB HTTP Programming Model allows developers to expose Windows Communication Foundation (WCF) Web services through basic HTTP requests without requiring SOAP. The WCF WEB HTTP Programming Model is built on top of the existing WCF extensibility model.
VS4.12.5.2. WebGet/WebInvoke, UriTemplates; [Exam 70-513, 70-521, and 70-523 only] – The WebGetAttribute attribute is applied to a service operation in addition to the OperationContractAttribute and associates the operation with a UriTemplate as well as the HTTP protocol Get verb. The association with HTTP Get verb means that the operation is used to retrieve information from the service. The WebGetAttribute attribute is a passive operation behavior (the IOperationBehavior methods do nothing) that adds metadata to the operation description. Applying the WebGetAttribute attribute to a service operation has no effect unless a behavior that is looking for this metadata in the operation description (such as WebHttpBehavior) is added to the service's behavior collection.
The WebInvokeAttribute attribute is applied to a service operation in addition to the OperationContractAttribute and associates the operation with a UriTemplate as well as an underlying transport verb that represents an invocation (for example, HTTP POST, PUT, or DELETE). The WebInvokeAttribute attribute is a passive operation behavior (the IOperationBehavior methods do nothing) that adds metadata to the operation description. Applying the WebInvokeAttribute attribute to a service operation has no effect unless a behavior that looks for this metadata in the operation description (such as WebHttpBehavior) is added to the service's behavior collection. The WebInvokeAttribute determines what HTTP method that a service operation responds to. By default, all methods that have the WebInvokeAttribute applied respond to POST requests. The Method property allows you to specify a different HTTP method. If you want a service operation to respond to GET, use the WebGetAttribute instead.
A URI template allows you to define a set of structurally similar URIs. Templates are composed of two parts, a path and a query. A path consists of a series of segments delimited by a slash (/). Each segment can have a literal value, a variable value (written within curly braces [{ }], constrained to match the contents of exactly one segment), or a wildcard (written as an asterisk [*], which matches "the rest of the path"), which must appear at the end of the path. The query expression can be omitted entirely. If present, it specifies an unordered series of name/value pairs. Elements of the query expression can be either literal pairs (?x=2) or variable pairs (?x={val}). Unpaired values are not permitted.
VS4.12.5.3. JSON/POX [Exam 70-513, 70-521, and 70-523 only] - JavaScript Object Notation (or JSON) / plain old XML (POX) - The Windows Communication Foundation (WCF) support for ASP.NET Asynchronous JavaScript and XML (AJAX) and the Javascript Object Notation (JSON) data format allow WCF services to expose operations to AJAX clients. AJAX clients are Web pages running Javascript code and accessing these WCF services using HTTP requests.
VS4.12.6. Create and configure a Routing service. [Exam 70-513 only] - The Routing Service is a generic SOAP intermediary that acts as a message router. The core functionality of the Routing Service is the ability to route messages based on message content, which allows a message to be forwarded to a client endpoint based on a value within the message itself, in either the header or the message body.
This objective may include but is not limited to:
VS4.12.6.1. filters, static and dynamic, context-based routing, content-based routing; [Exam 70-513 only] -
VS4.12.6.2. router interfaces [Exam 70-513 only] -
VS4.12.7. Create and configure a Discovery service. [Exam 70-513 only] - The Discovery APIs provide a unified programming model for the dynamic publication and discovery of Web services using the WS-Discovery protocol. These APIs allow services to publish themselves and clients to find published services. Once a service is made discoverable, the service has the ability to send announcement messages as well as listen for and respond to discovery requests. Discoverable services can send Hello messages to announce their arrival on a network and Bye messages to announce their departure from a network. To find a service, clients send a Probe request that contains specific criteria such as service contract type, keywords, and scope on the network. Services receive the Probe request and determine whether they match the criteria. If a service matches, it responds by sending a ProbeMatch message back to the client with the information necessary to contact the service. Clients can also send Resolve requests that allow them to find services that may have changed their endpoint address. Matching services respond to Resolve requests by sending a ResolveMatch message back to the client.
This objective may include but is not limited to:
VS4.12.7.1. configuring ad hoc and managed modes; [Exam 70-513 only] -
VS4.12.7.2. Discovery scopes; [Exam 70-513 only] -
VS4.12.7.3. service announcements [Exam 70-513 only] - To make a WCF service discoverable, add a ServiceDiscoveryBehavior to the ServiceDescription of the service host and add a discovery endpoint. If a service is configured to send announcement messages (by adding an AnnouncementEndpoint) the announcement is sent when the service host is opened and closed. A client that wants to listen for service announcement messages hosts an announcement service and adds one or more announcement endpoints. The announcement service receives announcement messages and raises announcement events.
VS4.13. Hosting and Configuring Services (18%) [~14 questions] [Exam 70-513, 70-521, and 70-523 only] -
VS4.13.1. Create and configure endpoints. [Exam 70-513, 70-521, and 70-523 only] - Endpoints provide clients access to the functionality offered by a WCF service. Each endpoint consists of four properties: 1) An address that indicates where the endpoint can be found. 2) A binding that specifies how a client can communicate with the endpoint. 3) A contract that identifies the operations available. 4) A set of behaviors that specify local implementation details of the endpoint.
This objective may include but is not limited to:
VS4.13.1.1. default and standard bindings; [Exam 70-513, 70-521, and 70-523 only] - Bindings specify how a Windows Communication Foundation (WCF) service endpoint communicates with other endpoints. At its most basic, a binding must specify the transport (for example, HTTP or TCP) to use. You can also set other characteristics, such as security and transaction support, through bindings.
VS4.13.1.2. custom bindings created from standard binding elements; [Exam 70-513, 70-521, and 70-523 only] - You can use the CustomBinding class when one of the system-provided bindings does not meet the requirements of your service. All bindings are constructed from an ordered set of binding elements. Custom bindings can be built from a set of system-provided binding elements or can include user-defined custom binding elements. You can use custom binding elements, for example, to enable the use of new transports or encoders at a service endpoint.
VS4.13.1.3. standard endpoints; [Exam 70-513 and 70-521 only] -
VS4.13.1.4. transports including HTTP, TCP, named pipes, UDP, MSMQ code-based service configuration; [Exam 70-513, 70-521, and 70-523 only] - The transport layer is at the lowest level of the channel stack. The main transports used in Windows Communication Foundation (WCF) are HTTP, HTTPS, TCP, and named pipes.
VS4.13.1.5. message encoding [Exam 70-513, 70-521, and 70-523 only] -
This objective does not include: creating a custom binding element; creating new standard endpoints, loading configuration from a location other than the default application configuration file, security, transaction, reliable sessions
VS4.13.2. Configure Behaviors. [Exam 70-513, 70-521, and 70-523 only] - Behaviors enable you to modify default behavior and add custom extensions that inspect and validate service configuration or modify runtime behavior in Windows Communication Foundation (WCF) client and service applications.
This objective may include but is not limited to:
VS4.13.2.1. applying service, endpoint, and operation behaviors in configuration and code [Exam 70-513, 70-521, and 70-523 only] - Service behaviors, such as the ServiceBehaviorAttribute attribute, operate across an entire service. For example, if you set the System.ServiceModel.ServiceBehaviorAttribute.ConcurrencyMode property to System.ServiceModel.ConcurrencyMode.Multiple you must handle thread synchronization issues inside each operation in that service yourself. Endpoint behaviors operate across an endpoint; many of the system-provided endpoint behaviors are for client functionality. Contract behaviors operate at the contract level, and operation behaviors modify operation delivery.
This objective does not include: creating a custom behavior; creating and using dispatch behaviors, loading configuration from a location other than the default application configuration file
VS4.13.3. Implement self hosting. [Exam 70-513 only] - To host a service inside a managed application, embed the code for the service inside the managed application code, define an endpoint for the service either imperatively in code, declaratively through configuration, or using default endpoints, and then create an instance of ServiceHost.
This objective may include but is not limited to:
VS4.13.3.1. configuring and instantiating a service host [Exam 70-513 only] - The most flexible and easiest way to host WCF services is by self-hosting. To be able to self-host your services, you have to meet two requirements. First, you need the WCF runtime; second, you need a managed .NET application in which you can host ServiceHost. It is your own responsibility to write the code that starts and stops the host.
This objective does not include: implementing a custom service host
VS4.13.4. Implement Web server hosting. [Exam 70-513 only] -
This objective may include but is not limited to:
VS4.13.4.1. configuring IIS/WAS for WCF; [Exam 70-513 only] – WAS (Windows Process Activation Services) is the new process activation service that is a generalization of Internet Information Services (IIS) features that work with non-HTTP transport protocols.
VS4.13.4.2. deploying to IIS/WAS; [Exam 70-513 only] - Developing and deploying a Windows Communication Foundation (WCF) service that is hosted in Internet Information Services (IIS) consists of the following tasks:
· Ensure that IIS, WCF, and the WCF activation component are correctly installed and registered.
· Create a new IIS application, or reuse an existing ASP.NET application.
· Create a .svc file for the WCF service.
· Deploy the service implementation to the IIS application.
· Configure the WCF service.
VS4.13.4.3. file-less configuration; [Exam 70-513 only] -
VS4.13.4.4. specifying a ServiceHost [Exam 70-513 only] - The standard ServiceHost API for hosting services in Windows Communication Foundation (WCF) is an extensibility point in the WCF architecture. Users can derive their own host classes from ServiceHost, usually to override OnOpening to use ServiceDescription to add default endpoints imperatively or modify behaviors, prior to opening the service.
This objective does not include: Windows Application Server
VS4.14. Consuming Services (19%) [~14 questions] [Exam 70-513, 70-521, and 70-523 only] -
VS4.14.1. Create a service proxy. [Exam 70-513, 70-521, and 70-523 only] - The easiest way to create a client service proxy for a Windows Communication Foundation (WCF) service is at the Service Model layer with the WsUtil tool, as described in the Creating a Client topic. However, if necessary, you can also create a service proxy manually. This API includes a WsCreateServiceProxy function for creating the service proxy as well as structures, enumerations, and so on for setting the properties necessary to interoperate with WCF.
This objective may include but is not limited to:
VS4.14.1.1. using a proxy class or channel factory to create a proxy; [Exam 70-513, 70-521, and 70-523 only] - The generic ChannelFactory class is used in advanced scenarios that require the creation of a channel factory that can be used to create more than one channel.
VS4.14.1.2. creating a proxy for an asynchronous communication; [Exam 70-513, 70-521, and 70-523 only] -
VS4.14.1.3. creating a proxy for a duplex communication [Exam 70-513, 70-521, and 70-523 only] - One feature of Windows Communication Foundation (WCF) is the ability to create a service that uses a duplex messaging pattern. This pattern allows a service to communicate with the client through a callback. This topic shows the steps to create a WCF client in a client class that implements the callback interface. A dual binding exposes the IP address of the client to the service. The client should use security to ensure that it connects only to services it trusts.
This objective does not include: SvcUtil command-line switches
VS4.14.2. Configure client endpoints. [Exam 70-513 only] - You can use the Windows Communication Foundation (WCF) client configuration to specify the address, binding, behavior, and contract, the "ABC" properties of the client endpoint, which clients use to connect to service endpoints. The <client> element has an <endpoint> element whose attributes are used to configure the endpoint ABCs. These attributes are discussed in the "Configuring Endpoints" section of this topic. The <endpoint> element also contains a <metadata> element that is used to specify settings for importing and exporting metadata , a <headers> element that contains a collection of custom address headers, and an <identity> element that enables the authentication of an endpoint by other endpoints exchanging messages with it. The <headers> and <identity> elements are part of the EndpointAddress and are discussed in the Endpoint Addresses topic.
This objective may include but is not limited to:
VS4.14.2.1. standard bindings, custom bindings created from standard binding elements, configuring behaviors; [Exam 70-513 only] - Bindings specify the communication mechanism to use when talking to an endpoint and indicate how to connect to an endpoint. Bindings consist of elements that define how the Windows Communication Foundation (WCF) channels are layered up to provide the required communication features. A binding contains three types of elements:
· Protocol channel binding elements, which determine the security, reliability, context flow settings, or user-defined protocols to use with messages that are sent to the endpoint.
· Transport channel binding elements, which determine the underlying transport protocol to use when sending messages to the endpoint, for example, TCP or HTTP.
· Message encoding binding elements, which determine the wire encoding to use for messages that are sent to the endpoint, for example, text/XML, binary, or Message Transmission Optimization Mechanism (MTOM).
VS4.14.2.2. code-based and configuration-based bindings; [Exam 70-513 only] - The endpoint address for a service can be specified either imperatively using code or declaratively through configuration. Defining endpoints in code is usually not practical because the bindings and addresses for a deployed service are typically different from those used while the service is being developed. Generally, it is more practical to define service endpoints using configuration rather than code. Keeping the binding and addressing information out of the code allows them to change without having to recompile or redeploy the application.
VS4.14.2.3. configuring addresses [Exam 70-513 only] - Every endpoint has an address associated with it, which is used to locate and identify the endpoint. This address consists primarily of a Uniform Resource Identifier (URI), which specifies the location of the endpoint. The endpoint address is represented in the Windows Communication Foundation (WCF) programming model by the EndpointAddress class, which contains an optional Identity property that enables the authentication of the endpoint by other endpoints that exchange messages with it, and a set of optional Headers properties, which define any other SOAP headers required to reach the service. The optional headers provide additional and more detailed addressing information to identify or interact with the service endpoint. The address of an endpoint is represented on the wire as a WS-Addressing endpoint reference (EPR).
This objective does not include: security; creating custom behaviors
VS4.14.3. Invoke a service. [Exam 70-513 only] -
This objective may include but is not limited to:
VS4.14.3.1. invoking a service operation synchronously and asynchronously; [Exam 70-513 only] - In Windows Communication Foundation (WCF) applications, a service operation can be implemented asynchronously or synchronously without dictating to the client how to call it. For example, asynchronous service operations can be calling synchronously, and synchronous service operations can be called asynchronously. For an example that shows how to call an operation asynchronously in a client application, see How to: Call WCF Service Operations Asynchronously. For more information about synchronous and asynchronous operations, see Designing Service Contracts and Synchronous and Asynchronous Operations.
VS4.14.3.2. handling service faults; [Exam 70-513 only] - Windows Communication Foundation (WCF) applications handle error situations by mapping managed exception objects to SOAP fault objects and SOAP fault objects to managed exception objects.
VS4.14.3.3. using the Message class; [Exam 70-513 only] - A Message is a general-purpose container for data, but its design closely follows the design of a message in the SOAP protocol. Just like in SOAP, a message has both a message body and headers. The message body contains the actual payload data, while the headers contain additional named data containers. The rules for reading and writing the body and the headers are different, for example, the headers are always buffered in memory and may be accessed in any order any number of times, while the body may be read only once and may be streamed. Normally, when using SOAP, the message body is mapped to the SOAP body and the message headers are mapped to the SOAP headers.
VS4.14.3.4. managing the life cycle of the proxy (open channels, close channels, abort channels, handle faulted channels); [Exam 70-513 only] -
VS4.14.3.5. implementing duplex communication [Exam 70-513 only] -
VS4.14.4. Consume RESTful services. [Exam 70-513, 70-521, and 70-523 only] -
This objective may include but is not limited to:
VS4.14.4.1. access HTTP context; [Exam 70-513, 70-521, and 70-523 only] -
VS4.14.4.2. JSON/POX [Exam 70-513, 70-521, and 70-523 only] -
VS4.14.5. Implement service Discovery. [Exam 70-513 only] - To make a service discoverable, a ServiceDiscoveryBehavior must be added to the service host and a discovery endpoint must be added to specify where to listen for discovery messages.
This objective may include but is not limited to:
VS4.14.5.1. configuring target scope; [Exam 70-513 only] - A client application can use the DiscoveryClient class to find services. The developer creates an instance of the DiscoveryClient class that passes in a discovery endpoint that specifies where to send Probe or Resolve messages. The client then calls Find that specifies search criteria within a FindCriteria instance. If matching services are found, Find returns a collection of EndpointDiscoveryMetadata.
VS4.14.5.2. monitoring service announcements [Exam 70-513 only] - By default, service publication does not send out announcement messages. The service must be configured to send out announcement messages. This provides additional flexibility for service writers because they can announce the service separately from listening for discovery messages. Service announcement can also be used as a mechanism for registering services with a discovery proxy or other service registries.
VS4.15. Securing Services (17%) [~12 questions] [Exam 70-513, 70-521, and 70-523 only] -
VS4.15.1. Configure secure Bindings. [Exam 70-513, 70-521, and 70-523 only] - The system-provided bindings included with Windows Communication Foundation (WCF) offer a quick way to program WCF applications. With one exception, all the bindings have a default security scheme enabled.
This objective may include but is not limited to:
VS4.15.1.1. transport, [Exam 70-513, 70-521, and 70-523 only] - Transport security mechanisms in Windows Communication Foundation (WCF) depend on the binding and subsequent transport being used. For example, when using the WSHttpBinding class, the transport is HTTP, and the primary mechanism for securing the transport is Secure Sockets Layer (SSL) over HTTP, commonly recognized as HTTPS. This topic discusses the major transport security mechanisms used in the WCF system-provided bindings.
VS4.15.1.2. message, [Exam 70-513, 70-521, and 70-523 only] - Message security means that every message includes the necessary headers and data to keep the message secure. Because the composition of the headers varies, you can include any number of credentials. This becomes a factor if you are interoperating with other services that demand a specific credential type that a transport mechanism can't supply, or if the message must be used with more than one service, where each service demands a different credential type.
VS4.15.1.3. mixed mode [Exam 70-513, 70-521, and 70-523 only] - This choice (TransportWithMessageCredential) uses the transport layer to secure the message transfer, while every message includes the rich credentials other services need. This combines the performance advantage of transport security with the rich credentials advantage of message security. This is available with the following bindings: BasicHttpBinding, WSFederationHttpBinding, NetPeerTcpBinding, and WSHttpBinding.
VS4.15.2. Configure message security. [Exam 70-513, 70-521, and 70-523 only] - Windows Communication Foundation (WCF) has two major modes for providing security (Transport and Message) and a third mode (TransportWithMessageCredential) that combines the two. Message security uses the WS-Security specification to secure messages. The specification describes enhancements to SOAP messaging to ensure confidentiality, integrity, and authentication at the SOAP message level (instead of the transport level). In brief, message security differs from transport security by encapsulating the security credentials and claims with every message along with any message protection (signing or encryption). Applying the security directly to the message by modifying its content allows the secured message to be self-containing with respect to the security aspects. This enables some scenarios that are not possible when transport security is used.
This objective may include but is not limited to:
VS4.15.2.1. specifying protection levels on different message parts [Exam 70-513, 70-521, and 70-523 only] -
VS4.15.3. Implement Authentication. [Exam 70-513 only] -
This objective may include but is not limited to:
VS4.15.3.1. Microsoft ASP.NET Membership Provider, Custom Provider, Windows Integrated Security, certificates (X.509), Federated Authentication endpoint identity; [Exam 70-513 only] -
VS4.15.3.2. configuring client credentials; [Exam 70-513 only] -
VS4.15.3.3. Custom Validator [Exam 70-513 only] -
This objective does not include: Geneva Framework
VS4.15.4. Implement Authorization. [Exam 70-513 only] - Authorization is the process of controlling access and rights to resources, such as services or files.
This objective may include but is not limited to:
VS4.15.4.1. role based, claim based; [Exam 70-513 only] -
VS4.15.4.2. configuring role providers for endpoints; [Exam 70-513 only] - Another feature of ASP.NET is the ability to manage authorization using roles. The ASP.NET role provider enables a developer to create roles for users and to assign each user to a role or roles. As with the membership provider, the roles and assignments are stored in a database, and can be populated using tools provided by a particular implementation of the ASP.NET role provider. As with the membership feature, WCF developers can use the information in the database to authorize service users by roles. They can, for example, use the role provider in combination with the PrincipalPermissionAttribute access control mechanism described above. You can also use the ASP.NET role provider if you have an existing ASP.NET role provider database and want to use the same set of rules and user assignments in your WCF service.
VS4.15.4.3. principal permission attribute [Exam 70-513 only] -
This objective does not include: rights-management authorization such as Active Directory Rights Management Services (AD RMS)
VS4.15.5. Implement Impersonation. [Exam 70-513 only] - Impersonation is a common technique that services use to restrict client access to a service domain's resources. Service domain resources can either be machine resources, such as local files (impersonation), or a resource on another machine, such as a file share (delegation).
This objective may include but is not limited to:
VS4.15.5.1. configuration and code; [Exam 70-513 only] - Impersonating a client on a Windows Communication Foundation (WCF) service enables the service to perform actions on behalf of the client. For actions subject to access control list (ACL) checks, such as access to directories and files on a machine or access to a SQL Server database, the ACL check is against the client user account.
VS4.15.5.2. configuring WCF-specific Internet Information Services (IIS) impersonation properties; [Exam 70-513 only] -
VS4.15.5.3. configuring impersonation options; [Exam 70-513 only] - WCF SOAP security has two distinct methods for performing impersonation. The method used depends on the binding. One is impersonation from a Windows token obtained from the Security Support Provider Interface (SSPI) or Kerberos authentication, which is then cached on the service. The second is impersonation from a Windows token obtained from the Kerberos extensions, collectively called Service-for-User (S4U).
VS4.15.5.4. operation-based and service-based [Exam 70-513 only] -
VS4.15.6. Implement security auditing. [Exam 70-513 only] - Applications created with Windows Communication Foundation (WCF) can log security events (either success, failure, or both) with the auditing feature. The events are written to the Windows system event log and can be examined using the Event Viewer.
This objective may include but is not limited to:
VS4.15.6.1. using serviceSecurityAudit behavior, [Exam 70-513 only] - The ServiceSecurityAuditBehavior class is used to audit authentication events. When auditing is enabled, either successful or failed authentication attempts (or both) can be audited. The events are written to one of three event logs: application, security, or the default log for the operating system version. The event logs can all be viewed using the Windows Event viewer. Use this class to specify which event log is written to, as well as kinds of authentication events to write. You can also specify whether to suppress audit failures by setting the SuppressAuditFailure property to false (the default is true).
VS4.15.6.2. service auditing, [Exam 70-513 only] -
VS4.15.6.3. audit log [Exam 70-513 only] -
VS4.16. Managing the Service Instance Life Cycle (13%) [~10 questions] [Exam 70-513, 70-521, and 70-523 only] -
VS4.16.1. Manage service instances. [Exam 70-513 only] - Setting the instance mode of a service enables you to specify when a System.ServiceModel.InstanceContext (and its associated user-defined service object) is created.
This objective may include but is not limited to:
VS4.16.1.1. per call; [Exam 70-513 only] - A new InstanceContext (and therefore service object) is created for each client request.
VS4.16.1.2. per session; [Exam 70-513 only] - A new InstanceContext (and therefore service object) is created for each new client session and maintained for the lifetime of that session (this requires a binding that supports sessions).
VS4.16.1.3. single; [Exam 70-513 only] - A single InstanceContext (and therefore service object) handles all client requests for the lifetime of the application.
VS4.16.1.4. code and configuration; [Exam 70-513 only] -
VS4.16.1.5. activation and deactivation; [Exam 70-513 only] -
VS4.16.1.6. durable services; [Exam 70-513 only] -
VS4.16.1.7. throttling [Exam 70-513 only] -
VS4.16.2. Manage sessions. [Exam 70-513, 70-521, and 70-523 only] - In Windows Communication Foundation (WCF) applications, a session correlates a group of messages into a conversation. WCF sessions are different than the session object available in ASP.NET applications, support different behaviors, and are controlled in different ways.
This objective may include but is not limited to:
VS4.16.2.1. code and configuration; [Exam 70-513, 70-521, and 70-523 only] -
VS4.16.2.2. session management attributes; [Exam 70-513, 70-521, and 70-523 only] -
VS4.16.2.3. throttling; [Exam 70-513, 70-521, and 70-523 only] -
VS4.16.2.4. reliable sessions; [Exam 70-513, 70-521, and 70-523 only] -
VS4.16.2.5. transport-level and application-level sessions; [Exam 70-513, 70-521, and 70-523 only] -
VS4.16.2.6. invoking a callback contract [Exam 70-513, 70-521, and 70-523 only] -
VS4.16.3. Implement transactions. [Exam 70-513 only] - Transactions provide a way to group a set of actions or operations into a single indivisible unit of execution. A transaction is a collection of operations with the following properties: * Atomicity. This ensures that either all of the updates completed under a specific transaction are committed and made durable or they are all aborted and rolled back to their previous state. * Consistency. This guarantees that the changes made under a transaction represent a transformation from one consistent state to another. For example, a transaction that transfers money from a checking account to a savings account does not change the amount of money in the overall bank account. * Isolation. This prevents a transaction from observing uncommitted changes belonging to other concurrent transactions. Isolation provides an abstraction of concurrency while ensuring one transaction cannot have an unexpected impact on the execution of another transaction. * Durability. This means that once committed, updates to managed resources (such as a database record) will be persistent in the face of failures.
This objective may include but is not limited to:
VS4.16.3.1. distributed transactions; [Exam 70-513 only] -
VS4.16.3.2. transactional queues; [Exam 70-513 only] -
VS4.16.3.3. transaction flow; [Exam 70-513 only] - Windows Communication Foundation (WCF) provides highly flexible options for controlling transaction flow. A service's transaction flow settings can be expressed using a combination of attributes and configuration.
VS4.16.3.4. configuring transaction binding attributes; [Exam 70-513 only] -
VS4.16.3.5. WS-AtomicTransaction (WS-AT); [Exam 70-513 only] - The WS-AtomicTransaction (WS-AT) protocol is useful for scenarios when interoperability with third-party protocol stacks is required.
VS4.16.3.6. transactional behavior attributes at the service and operation level; [Exam 70-513 only] -
VS4.16.3.7. using transactions in code [Exam 70-513 only] -
VS4.16.4. Manage concurrency. [Exam 70-513, 70-521, and 70-523 only] - Concurrency is the control of the number of threads active in an InstanceContext at any one time. This is controlled by using the System.ServiceModel.ServiceBehaviorAttribute.ConcurrencyMode with the ConcurrencyMode enumeration.
This objective may include but is not limited to:
VS4.16.4.1. single, multiple, and reentrant concurrency modes; [Exam 70-513, 70-521, and 70-523 only] - The following three concurrency modes are available: * Single: Each instance context is allowed to have a maximum of one thread processing messages in the instance context at a time. Other threads wishing to use the same instance context must block until the original thread exits the instance context. * Multiple: Each service instance can have multiple threads processing messages concurrently. The service implementation must be thread-safe to use this concurrency mode. * Reentrant: Each service instance processes one message at a time, but accepts re-entrant operation calls. The service only accepts these calls when it is calling out through a WCF client object.
VS4.16.4.2. SynchronizationContext and CallbackBehavior [Exam 70-513, 70-521, and 70-523 only] - The SynchronizationContext class is a base class that provides a free-threaded context with no synchronization. The purpose of the synchronization model implemented by this class is to allow the internal asynchronous/synchronization operations of the common language runtime to behave properly with different synchronization models. This model also simplifies some of the requirements that managed applications have had to follow in order to work correctly under different synchronization environments. Providers of synchronization models can extend this class and provide their own implementations for these methods.
This objective does not include: deadlocks and other multithreading issues
VS4.16.5. Manage consistency between instances, sessions, transactions, and concurrency. [Exam 70-513 only] - A session is a correlation of all messages sent between two endpoints. Instancing refers to controlling the lifetime of user-defined service objects and their related InstanceContext objects. Concurrency is the term given to the control of the number of threads executing in an InstanceContext at the same time.
This objective may include but is not limited to:
VS4.16.5.1. possible combinations between instances, sessions, transactions, and concurrency (for example, instance mode single with concurrency mode multiple) [Exam 70-513 only] - The instancing behavior (set by using the System.ServiceModel.ServiceBehaviorAttribute.InstanceContextMode property) controls how the InstanceContext is created in response to incoming messages. By default, each InstanceContext is associated with one user-defined service object, so (in the default case) setting the InstanceContextMode property also controls the instancing of user-defined service objects. The InstanceContextMode enumeration defines the instancing modes. The following instancing modes are available: * PerCall: A new InstanceContext (and therefore service object) is created for each client request. * PerSession: A new InstanceContext (and therefore service object) is created for each new client session and maintained for the lifetime of that session (this requires a binding that supports sessions). * Single: A single InstanceContext (and therefore service object) handles all client requests for the lifetime of the application.
VS4.17. Monitoring and Troubleshooting Distributed Systems (14%) [~10 questions] [Exam 70-513, 70-521, and 70-523 only] -
VS4.17.1. Configure message logging. [Exam 70-513, 70-521, and 70-523 only] - Windows Communication Foundation (WCF) does not log messages by default. To activate message logging, you must add a trace listener to the System.ServiceModel.MessageLogging trace source and set attributes for the <messagelogging> element in the configuration file.
This objective may include but is not limited to:
VS4.17.1.1. configuring message listeners; [Exam 70-513, 70-521, and 70-523 only] - A custom listener can be useful in filtering application-specific PII elements from messages before logging.
VS4.17.1.2. logging level; message filters; [Exam 70-513, 70-521, and 70-523 only] - WCF logs messages at two different levels, service and transport. Malformed messages are also logged. The three categories are independent from each other and can be activated separately in configuration. You can control the logging level by setting the logMessagesAtServiceLevel, logMalformedMessages, and logMessagesAtTransportLevel attributes of the messageLogging element.
VS4.17.1.3. configuring logging known PII [Exam 70-513, 70-521, and 70-523 only] - The .NET Framework configuration files can contain sensitive Personally Identifiable Information (PII) such as connection strings to connect to databases. In shared, Web-hosted scenarios it may be desirable to encrypt this information in the configuration file for a service so that the data contained within the configuration file is resistant to casual viewing. .NET Framework 2.0 and later has the ability to encrypt portions of the configuration file using the Windows Data Protection application programming interface (DPAPI) or the RSA Cryptographic provider. The aspnet_regiis.exe using the DPAPI or RSA can encrypt select portions of a configuration file. By default, logging of known PII is disabled however in certain situations logging of PII can be important in debugging an application.
This objective does not include: secure message logs
VS4.17.2. Configure diagnostics. [Exam 70-513, 70-521, and 70-523 only] - Windows Communication Foundation (WCF) uses the .NET configuration system and allows you to configure services at both the machine and application scope. Configuration settings defined by WCF are located in the <system.serviceModel> section group.
This objective may include but is not limited to:
VS4.17.2.1. WMI; [Exam 70-513, 70-521, and 70-523 only] - Windows Communication Foundation (WCF) exposes inspection data of a service at runtime through a WCF Windows Management Instrumentation (WMI) provider. WMI is Microsoft's implementation of the Web-Based Enterprise Management (WBEM) standard. For more information about the WMI SDK, see the MSDN Library. (http://msdn.microsoft.com/library/default.asp?url=/library/en-us/wmisdk/wmi/wmi_start_page.asp). WBEM is an industry standard for how applications expose management instrumentation to external management tools.
VS4.17.2.2. performance counters; [Exam 70-513, 70-521, and 70-523 only] - Windows Communication Foundation (WCF) includes a large set of performance counters to help you gauge your application's performance.
VS4.17.2.3. event logging [Exam 70-513, 70-521, and 70-523 only] - Windows Communication Foundation (WCF) traces internal events in the Windows event log. Event logging is enabled automatically by default, and there is no mechanism to disable it. Events logged by WCF can be viewed using the Event Viewer. To launch this tool, click Start, click Control Panel, double-click Administrative Tools, and then double-click Event Viewer.
VS4.17.3. Debug client-service interactions. [Exam 70-513 only] -
This objective may include but is not limited to:
VS4.17.3.1. sending server exception details to client; [Exam 70-513 only] - To make it easier for users to write client applications for your WCF service, you can add the <serviceDebug> service behavior to the configuration file of your service. This behavior can be used to publish help pages, and return managed exception information in the details of SOAP faults returned to the client.
VS4.17.3.2. end-to-end tracing; [Exam 70-513 only] - End to End (e2e) Tracing allows developers to follow the execution of code in the Windows Communication Foundation (WCF) infrastructure to investigate why a code path has failed, or to provide detailed tracing for capacity planning and performance analysis. Windows Communication Foundation (WCF) provides three correlation mechanisms to help diagnose the cause of an error: activities, transfers, and propagation.
VS4.17.3.3. interpreting output from the trace viewer (single message and end to end) [Exam 70-513 only] - The Windows Communication Foundation (WCF) Service Trace Viewer tool helps you correlate diagnostic traces produced by WCF listeners to locate the root cause of an error. The tool gives you a way to easily view, group, and filter traces so that you can diagnose, repair and verify issues with WCF services. For more information about using this tool, see Service Trace Viewer Tool (SvcTraceViewer.exe).
This objective does not include: tracing viewer features outside of viewing traces
= = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = =
70-516 TS: Accessing Data with Microsoft® .NET Framework 4
Skills being measured:
VS4.18. Modeling Data (20%) [~15 questions] [Exam 70-516, 70-521, and 70-523 only] -
VS4.18.1. Map entities and relationships by using the Entity Data Model. [Exam 70-516, 70-521, and 70-523 only] - The Entity Data Model (EDM) is a set of concepts that describe the structure of data, regardless of its stored form.
This objective may include but is not limited to:
VS4.18.1.1. using the Visual Designer, [Exam 70-516, 70-521, and 70-523 only] -
VS4.18.1.2. building an entity data model from an existing database, [Exam 70-516, 70-521, and 70-523 only] -
VS4.18.1.3. managing complex entity mappings in EDMX, [Exam 70-516, 70-521, and 70-523 only] -
VS4.18.1.4. editing EDM XML, [Exam 70-516, 70-521, and 70-523 only] -
VS4.18.1.5. mapping to stored procedures, [Exam 70-516, 70-521, and 70-523 only] -
VS4.18.1.6. creating user-defined associations between entities, [Exam 70-516, 70-521, and 70-523 only] -
VS4.18.1.7. generating classes with inheritance and mapping them to tables [Exam 70-516, 70-521, and 70-523 only] -
This objective does not include: using MetadataWorkspace
VS4.18.2. Map entities and relationships by using LINQ to SQL. [Exam 70-516 only] -
This objective may include but is not limited to:
VS4.18.2.1. using the Visual Designer, [Exam 70-516 only] -
VS4.18.2.2. building a LINQ to SQL model from an existing database, [Exam 70-516 only] -
VS4.18.2.3. mapping to stored procedures [Exam 70-516 only] -
VS4.18.3. Create and customize entity objects. [Exam 70-516, 70-521, and 70-523 only] -
This objective may include but is not limited to:
VS4.18.3.1. configuring changes to an Entity Framework entity, [Exam 70-516, 70-521, and 70-523 only] -
VS4.18.3.2. using the ADO.NET EntityObject Generator (T4), [Exam 70-516, 70-521, and 70-523 only] -
VS4.18.3.3. extending, [Exam 70-516, 70-521, and 70-523 only] -
VS4.18.3.4. self-tracking entities, [Exam 70-516, 70-521, and 70-523 only] -
VS4.18.3.5. snapshot change tracking, [Exam 70-516, 70-521, and 70-523 only] -
VS4.18.3.6. ObjectStateManager, [Exam 70-516, 70-521, and 70-523 only] - ObjectStateManager tracks query results, and provides logic to merge multiple overlapping query results. It also performs in-memory change tracking when a user inserts, deletes, or modifies objects, and provides the change set for updates. This change set is used by the change processor to persist modifications. This class is typically used by ObjectContext and not directly in applications.
VS4.18.3.7. partial classes, [Exam 70-516, 70-521, and 70-523 only] -
VS4.18.3.8. partial methods in the Entity Framework [Exam 70-516, 70-521, and 70-523 only] -
VS4.18.4. Connect a POCO model to the Entity Framework. [Exam 70-516 only] -
This objective may include but is not limited to:
VS4.18.4.1. implementing the Entity Framework with persistence ignorance, [Exam 70-516 only] -
VS4.18.4.2. user-created POCO entities [Exam 70-516 only] -
This objective does not include: using the POCO templates
VS4.18.5. Create the database from the Entity Framework model. [Exam 70-516 only] -
This objective may include but is not limited to:
VS4.18.5.1. customizing the Data Definition Language (DDL) (templates) generation process, [Exam 70-516 only] -
VS4.18.5.2. generating scripts for a database, [Exam 70-516 only] -
VS4.18.5.3. Entity Data Model tools [Exam 70-516 only] -
VS4.18.6. Create model-defined functions. [Exam 70-516 only] -
This objective may include but is not limited to:
VS4.18.6.1. editing the Conceptual Schema Definition Language CSDL, [Exam 70-516 only] -
VS4.18.6.2. enabling model-defined functions by using the EdmFunction attribute, [Exam 70-516 only] -
VS4.18.6.3. complex types [Exam 70-516 only] -
VS4.19. Managing Connections and Context (18%) [~13 questions] [Exam 70-516, 70-521, and 70-523 only] -
VS4.19.1. Configure connection strings and providers. [Exam 70-516 only] -
This objective may include but is not limited to:
VS4.19.1.1. managing connection strings including Entity Framework connection strings, [Exam 70-516 only] -
VS4.19.1.2. using the ConfigurationManager, [Exam 70-516 only] -
VS4.19.1.3. correctly addressing the Microsoft SQL Server instance, [Exam 70-516 only] -
VS4.19.1.4. implementing connection pooling, [Exam 70-516 only] -
VS4.19.1.5. managing User Instance and AttachDBfilename, [Exam 70-516 only] -
VS4.19.1.6. switching providers, [Exam 70-516 only] -
VS4.19.1.7. implementing multiple active result sets (MARS) [Exam 70-516 only] -
This objective does not include: using the ConnectionStringBuilder; Oracle data provider; creating and using a custom provider; using third-party providers
VS4.19.2. Create and manage a data connection. [Exam 70-516, 70-521, and 70-523 only] -
This objective may include but is not limited to:
VS4.19.2.1. connecting to a data source, [Exam 70-516, 70-521, and 70-523 only] -
VS4.19.2.2. closing connections, [Exam 70-516, 70-521, and 70-523 only] -
VS4.19.2.3. maintaining the life cycle of a connection [Exam 70-516, 70-521, and 70-523 only] -
VS4.19.3. Secure a connection. [Exam 70-516 only] -
This objective may include but is not limited to:
VS4.19.3.1. encrypting and decrypting connection strings, [Exam 70-516 only] -
VS4.19.3.2. using Security Support Provider Interface (SSPI) or SQL Server authentication, [Exam 70-516 only] -
VS4.19.3.3. read only vs. read/write connections [Exam 70-516 only] -
This objective does not include: Secure Sockets Layer (SSL)
VS4.19.4. Manage the DataContext and ObjectContext. [Exam 70-516 only] - The DataContext is the source of all entities mapped over a database connection. It tracks changes that you made to all retrieved entities and maintains an "identity cache" that guarantees that entities retrieved more than one time are represented by using the same object instance. In general, a DataContext instance is designed to last for one "unit of work" however your application defines that term. A DataContext is lightweight and is not expensive to create. A typical LINQ to SQL application creates DataContext instances at method scope or as a member of short-lived classes that represent a logical set of related database operations.
The ObjectContext class is the primary class for interacting with data as objects that are instances of entity types that are defined in a conceptual model. An instance of the ObjectContext class encapsulates the following:
· A connection to the database, in the form of an EntityConnection object.
· Metadata that describes the model, in the form of a MetadataWorkspace object.
· An ObjectStateManager object that manages objects persisted in the cache.
When the object layer that represents a conceptual model is generated by the Entity Data Model tools, the class that represents the EntityContainer for the model is derived from the ObjectContext.
This objective may include but is not limited to:
VS4.19.4.1. managing the life cycle of DataContext and ObjectContext, [Exam 70-516 only] - Change tracking information for the object graph is stored in ObjectStateEntry objects, which are created by the ObjectContext for each attached object. ObjectStateEntry objects store the following information for the entities:
· The EntityKey that determines the identity of an entity.
· The EntityState for the object
· Information about related objects
· The entity set name
· The CurrentValues and OriginalValues of the entity's properties (objects in an Added state do not have original values)
· The names of the entity's modified properties.
To find if the value of a property has changed between the calls to SaveChanges, query the collection of changed property names returned by the GetModifiedProperties method.
VS4.19.4.2. extending the DataContext and ObjectContext, [Exam 70-516 only] - In the Entity Framework, objects can be attached to or detached from an object context. Objects that are attached to an object context are tracked and managed by that object context. Detached objects are not referenced by the object context, and their resources can be reclaimed by the .NET Framework.
VS4.19.4.3. supporting POCO [Exam 70-516 only] - If you are working with POCO entities without change-tracking proxies, you must call DetectChanges before calling GetModifiedProperties.
VS4.19.5. Implement eager loading. [Exam 70-516 only] -
This objective may include but is not limited to:
VS4.19.5.1. configuring loading strategy by using LazyLoadingEnabled, [Exam 70-516 only] -
VS4.19.5.2. supporting lazy loading with POCO, [Exam 70-516 only] -
VS4.19.5.3. explicitly loading entities [Exam 70-516 only] -
VS4.19.6. Cache data. [Exam 70-516 only] -
This objective may include but is not limited to:
VS4.19.6.1. DataContext and ObjectContext cache including identity map, [Exam 70-516 only] -
VS4.19.6.2. local data cache [Exam 70-516 only] -
This objective does not include: Velocity, SqlCacheDependency
VS4.19.7. Configure ADO.NET Data Services. [Exam 70-516, 70-521, and 70-523 only] -
This objective may include but is not limited to:
VS4.19.7.1. creating access rules for entities, [Exam 70-516, 70-521, and 70-523 only] -
VS4.19.7.2. configuring authorization and authentication, [Exam 70-516, 70-521, and 70-523 only] -
VS4.19.7.3. configuring HTTP verbs [Exam 70-516, 70-521, and 70-523 only] -
VS4.20. Querying Data (22%) [~17 questions] [Exam 70-516, 70-521, and 70-523 only] -
VS4.20.1. Execute a SQL query. [Exam 70-516, 70-521, and 70-523 only] -
This objective may include but is not limited to:
VS4.20.1.1. DBCommand, [Exam 70-516, 70-521, and 70-523 only] -
VS4.20.1.2. DataReader, [Exam 70-516, 70-521, and 70-523 only] -
VS4.20.1.3. DataAdapters, [Exam 70-516, 70-521, and 70-523 only] -
VS4.20.1.4. DataSets, [Exam 70-516, 70-521, and 70-523 only] -
VS4.20.1.5. managing data retrieval by using stored procedures, [Exam 70-516, 70-521, and 70-523 only] -
VS4.20.1.6. using parameters, [Exam 70-516, 70-521, and 70-523 only] -
VS4.20.1.7. System.Data.Common namespace classes [Exam 70-516, 70-521, and 70-523 only] -
VS4.20.2. Create a LINQ query. [Exam 70-516, 70-521, and 70-523 only] -
This objective may include but is not limited to:
VS4.20.2.1. syntax-based and method-based queries, [Exam 70-516, 70-521, and 70-523 only] -
VS4.20.2.2. joining, [Exam 70-516, 70-521, and 70-523 only] -
VS4.20.2.3. filtering, [Exam 70-516, 70-521, and 70-523 only] -
VS4.20.2.4. sorting, [Exam 70-516, 70-521, and 70-523 only] -
VS4.20.2.5. grouping, [Exam 70-516, 70-521, and 70-523 only] -
VS4.20.2.6. aggregation, [Exam 70-516, 70-521, and 70-523 only] -
VS4.20.2.7. lambda expressions, [Exam 70-516, 70-521, and 70-523 only] -
VS4.20.2.8. paging, [Exam 70-516, 70-521, and 70-523 only] -
VS4.20.2.9. projection [Exam 70-516, 70-521, and 70-523 only] -
This objective does not include: compiling queries
VS4.20.3. Create an Entity SQL (ESQL) query. [Exam 70-516 only] -
This objective may include but is not limited to:
VS4.20.3.1. joining, [Exam 70-516 only] -
VS4.20.3.2. filtering, [Exam 70-516 only] -
VS4.20.3.3. sorting, [Exam 70-516 only] -
VS4.20.3.4. grouping, [Exam 70-516 only] -
VS4.20.3.5. aggregation, [Exam 70-516 only] -
VS4.20.3.6. paging, [Exam 70-516 only] -
VS4.20.3.7. using functions, [Exam 70-516 only] -
VS4.20.3.8. query plan caching, [Exam 70-516 only] -
VS4.20.3.9. returning a reference to an entity instance, [Exam 70-516 only] -
VS4.20.3.10. using parameters with ESQL, [Exam 70-516 only] -
VS4.20.3.11. functionality related to EntityClient classes [Exam 70-516 only] -
VS4.20.4. Handle special data types. [Exam 70-516 only] -
This objective may include but is not limited to:
VS4.20.4.1. querying BLOBs, [Exam 70-516 only] -
VS4.20.4.2. filestream, [Exam 70-516 only] -
VS4.20.4.3. spatial and table-valued parameters [Exam 70-516 only] -
This objective does not include: implementing data types for unstructured data, user-defined types, Common Language Runtime (CLR) types
VS4.20.5. Query XML. [Exam 70-516 only] -
This objective may include but is not limited to:
VS4.20.5.1. LINQ to XML, [Exam 70-516 only] -
VS4.20.5.2. XmlReader, [Exam 70-516 only] -
VS4.20.5.3. XmlDocuments, [Exam 70-516 only] -
VS4.20.5.4. XPath [Exam 70-516 only] -
This objective does not include: XSLT, XmlWriter
VS4.20.6. Query data by using ADO.NET Data Services. [Exam 70-516, 70-521, and 70-523 only] -
This objective may include but is not limited to:
VS4.20.6.1. implementing filtering and entitlement in ADO.NET Data Services, [Exam 70-516, 70-521, and 70-523 only] -
VS4.20.6.2. addressing resources, [Exam 70-516, 70-521, and 70-523 only] -
VS4.20.6.3. creating a query expression, [Exam 70-516, 70-521, and 70-523 only] -
VS4.20.6.4. accessing payload formats, [Exam 70-516, 70-521, and 70-523 only] -
VS4.20.6.5. Data Services interceptors [Exam 70-516, 70-521, and 70-523 only] -
VS4.21. Manipulating Data (22%) [~17 questions] [Exam 70-516, 70-521, and 70-523 only] -
VS4.21.1. Create, update, or delete data by using SQL statements. [Exam 70-516, 70-521, and 70-523 only] -
This objective may include but is not limited to:
VS4.21.1.1. Create/Update/Delete (CUD), [Exam 70-516, 70-521, and 70-523 only] -
VS4.21.1.2. using DataSets, [Exam 70-516, 70-521, and 70-523 only] -
VS4.21.1.3. calling stored procedures, [Exam 70-516, 70-521, and 70-523 only] -
VS4.21.1.4. using parameters [Exam 70-516, 70-521, and 70-523 only] -
VS4.21.2. Create, update, or delete data by using DataContext. [Exam 70-516, 70-521, and 70-523 only] -
This objective may include but is not limited to:
VS4.21.2.1. CUD, [Exam 70-516, 70-521, and 70-523 only] -
VS4.21.2.2. calling stored procedures, [Exam 70-516, 70-521, and 70-523 only] -
VS4.21.2.3. using parameters [Exam 70-516, 70-521, and 70-523 only] -
This objective does not include: ObjectTrackingEnabled
VS4.21.3. Create, update, or delete data by using ObjectContext. [Exam 70-516, 70-521, and 70-523 only] -
This objective may include but is not limited to:
VS4.21.3.1. CUD, [Exam 70-516, 70-521, and 70-523 only] -
VS4.21.3.2. calling stored procedures, [Exam 70-516, 70-521, and 70-523 only] -
VS4.21.3.3. using parameters, [Exam 70-516, 70-521, and 70-523 only] -
VS4.21.3.4. setting SaveOptions [Exam 70-516, 70-521, and 70-523 only] -
VS4.21.4. Manage transactions. [Exam 70-516 only] -
This objective may include but is not limited to:
VS4.21.4.1. System.Transactions, [Exam 70-516 only] -
VS4.21.4.2. DBTransaction, [Exam 70-516 only] -
VS4.21.4.3. rolling back a transaction, [Exam 70-516 only] -
VS4.21.4.4. Lightweight Transaction Manager (LTM) [Exam 70-516 only] -
This objective does not include: distributed transactions, multiple updates within a transaction, multiple synchronization of data within an acidic transaction
VS4.21.5. Create disconnected objects. [Exam 70-516 only] -
This objective may include but is not limited to:
VS4.21.5.1. creating self-tracking entities in the Entity Framework, [Exam 70-516 only] -
VS4.21.5.2. attaching objects, [Exam 70-516 only] -
VS4.21.5.3. DataSets, [Exam 70-516 only] -
VS4.21.5.4. table adapters [Exam 70-516 only] -
VS4.22. Developing and Deploying Reliable Applications (18%) [~13 questions] [Exam 70-516, 70-521, and 70-523 only] -
VS4.22.1. Monitor and collect performance data. [Exam 70-516, 70-521, and 70-523 only] -
This objective may include but is not limited to:
VS4.22.1.1. logging generated SQL (ToTraceString), [Exam 70-516, 70-521, and 70-523 only] -
VS4.22.1.2. collecting response times, [Exam 70-516, 70-521, and 70-523 only] -
VS4.22.1.3. implementing performance counters, [Exam 70-516, 70-521, and 70-523 only] -
VS4.22.1.4. implementing logging, [Exam 70-516, 70-521, and 70-523 only] -
VS4.22.1.5. implementing instrumentation [Exam 70-516, 70-521, and 70-523 only] -
VS4.22.2. Handle exceptions. [Exam 70-516, 70-521, and 70-523 only] -
This objective may include but is not limited to:
VS4.22.2.1. resolving data concurrency issues (handling OptimisticConcurrency exception, Refresh method), [Exam 70-516, 70-521, and 70-523 only] -
VS4.22.2.2. handling errors, [Exam 70-516, 70-521, and 70-523 only] -
VS4.22.2.3. transaction exceptions, [Exam 70-516, 70-521, and 70-523 only] -
VS4.22.2.4. connection exceptions, [Exam 70-516, 70-521, and 70-523 only] -
VS4.22.2.5. timeout exceptions, [Exam 70-516, 70-521, and 70-523 only] -
VS4.22.2.6. handling an exception from the Entity Framework disconnected object, [Exam 70-516, 70-521, and 70-523 only] -
VS4.22.2.7. security exceptions [Exam 70-516, 70-521, and 70-523 only] -
VS4.22.3. Protect data. [Exam 70-516, 70-521, and 70-523 only] -
This objective may include but is not limited to:
VS4.22.3.1. encryption, [Exam 70-516, 70-521, and 70-523 only] -
VS4.22.3.2. digital signature, [Exam 70-516, 70-521, and 70-523 only] -
VS4.22.3.3. hashing, [Exam 70-516, 70-521, and 70-523 only] -
VS4.22.3.4. salting, [Exam 70-516, 70-521, and 70-523 only] -
VS4.22.3.5. least privilege [Exam 70-516, 70-521, and 70-523 only] -
VS4.22.4. Synchronize data. [Exam 70-516, 70-521, and 70-523 only] -
This objective may include but is not limited to:
VS4.22.4.1. online/offline Entity Framework, [Exam 70-516, 70-521, and 70-523 only] -
VS4.22.4.2. synchronization services, [Exam 70-516, 70-521, and 70-523 only] -
VS4.22.4.3. saving locally [Exam 70-516, 70-521, and 70-523 only] -
VS4.22.5. Deploy ADO.NET components. [Exam 70-516 only] -
This objective may include but is not limited to:
VS4.22.5.1. packaging and publishing from Visual Studio, [Exam 70-516 only] -
VS4.22.5.2. deploying an ADO.NET Services application; [Exam 70-516 only] -
VS4.22.5.3. packaging and deploying Entity Framework metadata [Exam 70-516 only] -
This objective does not include: configuring IIS, MSDeploy, MSBuild
= = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = =
70-518 Pro: Designing and Developing Windows Applications with Microsoft® .NET Framework 4
Skills being measured:
VS4.23. Designing the Layers of a Solution (22%) [~20 questions] [Exam 70-518 and 70-521 only] -
VS4.23.1. Design a loosely coupled layered architecture. [Exam 70-518 and 70-521 only] -
This objective may include but is not limited to:
VS4.23.1.1. separation of concerns including presentation, business logic, and data; [Exam 70-518 and 70-521 only] -
VS4.23.1.2. minimizing logical dependencies; [Exam 70-518 and 70-521 only] -
VS4.23.1.3. deciding how layers connect (e.g., content-based vs. context-based filtered routing) [Exam 70-518 and 70-521 only] -
VS4.23.2. Design service interaction. [Exam 70-518 and 70-521 only] -
This objective may include but is not limited to:
VS4.23.2.1. service granularity (cohesiveness); [Exam 70-518 and 70-521 only] -
VS4.23.2.2. interface granularity (responsibilities of an operation), versioning, data and service contracts (using a message contract rather than a data contract); [Exam 70-518 and 70-521 only] -
VS4.23.2.3. hosting and protocol; [Exam 70-518 and 70-521 only] -
VS4.23.2.4. managing data integrity (re-validating data across trust boundaries); [Exam 70-518 and 70-521 only] -
VS4.23.2.5. evaluating use of RESTful interface (URI/resource structure); [Exam 70-518 and 70-521 only] -
VS4.23.2.6. choosing a message exchange pattern; [Exam 70-518 and 70-521 only] -
VS4.23.2.7. choosing synchronous vs. asynchronous operation invocation; [Exam 70-518 and 70-521 only] -
VS4.23.2.8. deciding whether to use custom SOAP headers [Exam 70-518 and 70-521 only] -
This objective does not include: interacting with existing/external systems
VS4.23.3. Design the security implementation. [Exam 70-518 and 70-521 only] -
This objective may include but is not limited to:
VS4.23.3.1. protecting data during transmission (encryption/hashing algorithm), [Exam 70-518 and 70-521 only] -
VS4.23.3.2. authentication (client/proxy credential) [Exam 70-518 and 70-521 only] -
VS4.23.3.3. and authorization (groups, built-in or custom role provider, claims, federated security), [Exam 70-518 and 70-521 only] -
VS4.23.3.4. designing for least privilege (impersonation and/or delegation), [Exam 70-518 and 70-521 only] -
VS4.23.3.5. planning for User Access Control (UAC) environments; [Exam 70-518 and 70-521 only] -
VS4.23.3.6. auditing [Exam 70-518 and 70-521 only] -
VS4.23.4. Design for interoperability with external systems. [Exam 70-518 only] -
This objective may include but is not limited to:
VS4.23.4.1. choosing an appropriate strategy for communicating with COM components, mainframe services, and Web services [Exam 70-518 only] -
VS4.23.5. Design for optimal processing. [Exam 70-518 only] -
This objective may include but is not limited to:
VS4.23.5.1. parallel processing; [Exam 70-518 only] -
VS4.23.5.2. asynchronous processing; [Exam 70-518 only] -
VS4.23.5.3. service bus; [Exam 70-518 only] -
VS4.23.5.4. gateway processes; [Exam 70-518 only] -
VS4.23.5.5. scalability (scale out vs. scale up); [Exam 70-518 only] -
VS4.23.5.6. designing tiers to minimize latency (batch retrieval, multiple small calls) [Exam 70-518 only] -
VS4.23.6. Design for globalization and localization. [Exam 70-518 and 70-521 only] -
This objective may include but is not limited to:
VS4.23.6.1. multi-locale services; [Exam 70-518 and 70-521 only] -
VS4.23.6.2. designing for time zone, sorting, UI considerations; [Exam 70-518 and 70-521 only] -
VS4.23.6.3. database design considerations [Exam 70-518 and 70-521 only] -
VS4.24. Designing the Presentation Layer (21%) [~19 questions] [Exam 70-518 and 70-521 only] -
VS4.24.1. Choose the appropriate Windows Client technology. [Exam 70-518 only] -
This objective may include but is not limited to:
VS4.24.1.1. choosing between Windows Forms, WPF, or a combination; [Exam 70-518 and 70-521 only] -
VS4.24.1.2. choosing an appropriate presentation pattern (Model View Presenter [MVP], Model View/View Model [MV-VM]); [Exam 70-518 and 70-521 only] -
VS4.24.1.3. identifying areas for possible migration/interoperability from Windows Forms to WPF [Exam 70-518 and 70-521 only] -
VS4.24.2. Design the UI layout and structure. [Exam 70-518 only] -
This objective may include but is not limited to:
VS4.24.2.1. evaluating the conceptual design, deciding how the UI will be composed (e.g., static vs. dynamic screen); [Exam 70-518 only] -
VS4.24.2.2. designing for the inheritance and re-use of visual elements (e.g., styles, resources); [Exam 70-518 only] -
VS4.24.2.3. accessibility considerations; [Exam 70-518 only] -
VS4.24.2.4. deciding when custom controls are needed [Exam 70-518 only] -
VS4.24.3. Design application workflow. [Exam 70-518 and 70-521 only] -
This objective may include but is not limited to:
VS4.24.3.1. user navigation, designing wizards, modal vs. non-modal; [Exam 70-518 and 70-521 only] -
VS4.24.3.2. dependencies among UI elements; [Exam 70-518 and 70-521 only] -
VS4.24.3.3. designing for input types based on environment and audience (kiosk, very large display, small display, indoors and outdoors) [Exam 70-518 and 70-521 only] -
VS4.24.4. Design data presentation and input. [Exam 70-518 and 70-521 only] -
This objective may include but is not limited to:
VS4.24.4.1. designing data validation; [Exam 70-518 and 70-521 only] -
VS4.24.4.2. designing a data-binding strategy; [Exam 70-518 and 70-521 only] -
VS4.24.4.3. designing a reporting strategy; [Exam 70-518 and 70-521 only] -
VS4.24.4.4. choosing media services (audio, video, images, animation); [Exam 70-518 and 70-521 only] -
VS4.24.4.5. managing data shared between forms [Exam 70-518 and 70-521 only] -
VS4.24.5. Design presentation behavior. [Exam 70-518 only] -
This objective may include but is not limited to:
VS4.24.5.1. determining which behaviors will be implemented and how; [Exam 70-518 only] -
VS4.24.5.2. drag and drop functionality [Exam 70-518 only] -
VS4.24.6. Design for UI responsiveness. [Exam 70-518 only] -
This objective may include but is not limited to:
VS4.24.6.1. offloading operations from UI thread and reporting of progress, [Exam 70-518 only] -
VS4.24.6.2. avoiding unnecessary screen refresh; media buffering; [Exam 70-518 only] -
VS4.24.6.3. client vs. server side sorting and filtering of data; [Exam 70-518 only] -
VS4.24.6.4. addressing UI memory issues [Exam 70-518 only] -
VS4.25. Designing the Data Access Layer (21%) [~20 questions] [Exam 70-518 and 70-521 only] -
VS4.25.1. Choose the appropriate data access strategy. [Exam 70-518 and 70-521 only] -
This objective may include but is not limited to:
VS4.25.1.1. choosing the appropriate data access technology (Entity Framework, LINQ to SQL, Microsoft ADO.NET); [Exam 70-518 and 70-521 only] -
VS4.25.1.2. supporting data sources such as XML data, flat files, and relational databases [Exam 70-518 and 70-521 only] -
VS4.25.2. Design the data object model. [Exam 70-518 only] -
This objective may include but is not limited to:
VS4.25.2.1. mapping to persistent storage (mapping to tables, XML files), [Exam 70-518 only] -
VS4.25.2.2. abstracting from the service layer (encapsulating underlying schema details); [Exam 70-518 only] -
VS4.25.2.3. designing a schema change management strategy [Exam 70-518 only] -
VS4.25.3. Design data caching. [Exam 70-518 and 70-521 only] -
This objective may include but is not limited to:
VS4.25.3.1. managing data cache (lifetime, targets, size, scope), [Exam 70-518 and 70-521 only] -
VS4.25.3.2. managing data state (change notification, cache invalidation/synchronization) [Exam 70-518 and 70-521 only] -
VS4.25.4. Design offline storage and data synchronization. [Exam 70-518 only] -
This objective may include but is not limited to:
VS4.25.4.1. managing offline data, [Exam 70-518 only] -
VS4.25.4.2. mapping a data store to local cache, [Exam 70-518 only] -
VS4.25.4.3. designing synchronization; [Exam 70-518 only] -
VS4.25.4.4. analyzing target data environment (e.g., Microsoft SQL Server, SQL Express, workstation capabilities, OS, bandwidth, reliability) [Exam 70-518 only] -
VS4.25.5. Design for a concurrent multi-user environment. [Exam 70-518 and 70-521 only] -
This objective may include but is not limited to:
VS4.25.5.1. planning for concurrency and collision avoidance, [Exam 70-518 and 70-521 only] -
VS4.25.5.2. optimistic vs. pessimistic locking, [Exam 70-518 and 70-521 only] -
VS4.25.5.3. cross-tier distributed transactions [Exam 70-518 and 70-521 only] -
VS4.25.6. Analyze data services for optimization. [Exam 70-518 only] -
This objective may include but is not limited to:
VS4.25.6.1. object relational mapping (ORM) performance, [Exam 70-518 only] -
VS4.25.6.2. optimizing roundtrips, lazy vs. eager loading, [Exam 70-518 only] -
VS4.25.6.3. caching of frequently used data [Exam 70-518 only] -
VS4.26. Planning a Solution Deployment (17%) [~12 questions] [Exam 70-518 and 70-521 only] -
VS4.26.1. Define a client deployment strategy. [Exam 70-518 and 70-521 only] -
This objective may include but is not limited to:
VS4.26.1.1. recommending an installation method (Xcopy, ClickOnce, MSI, third party); [Exam 70-518 and 70-521 only] -
VS4.26.1.2. identifying prerequisites (target framework and bootstrap requirements), [Exam 70-518 and 70-521 only] -
VS4.26.1.3. deploying COM components [Exam 70-518 and 70-521 only] -
VS4.26.2. Plan a database deployment. [Exam 70-518 and 70-521 only] -
This objective may include but is not limited to:
VS4.26.2.1. existing or shared instance; [Exam 70-518 and 70-521 only] -
VS4.26.2.2. remote server; [Exam 70-518 and 70-521 only] -
VS4.26.2.3. embedded database; [Exam 70-518 and 70-521 only] -
VS4.26.2.4. deploying new objects (such as tables, stored procedures, and views) to a new or existing database; [Exam 70-518 and 70-521 only] -
VS4.26.2.5. recognizing database security concerns (such as shared instances and access); [Exam 70-518 and 70-521 only] -
VS4.26.2.6. remote vs. local database [Exam 70-518 and 70-521 only] -
This objective does not include: DLL deployment; shared GAC deployment
VS4.26.3. Design a solution update strategy. [Exam 70-518 and 70-521 only] -
This objective may include but is not limited to:
VS4.26.3.1. preserving shared components, data integrity, and user customizations; [Exam 70-518 and 70-521 only] -
VS4.26.3.2. designing an update delivery method (e.g., automated update detection from the client), [Exam 70-518 and 70-521 only] -
VS4.26.3.3. version mismatch (both local binaries and service interfaces) [Exam 70-518 and 70-521 only] -
VS4.26.4. Plan for n-tier deployment. [Exam 70-518 and 70-521 only] -
This objective may include but is not limited to:
VS4.26.4.1. mapping the solution to the topology (required hardware such as servers, routers, and RAM and required software such as OS); [Exam 70-518 and 70-521 only] -
VS4.26.4.2. determining component installation order; [Exam 70-518 and 70-521 only] -
VS4.26.4.3. reviewing security requirements [Exam 70-518 and 70-521 only] -
VS4.27. Designing for Stability and Maintenance (19%) [was 14%] [Exam 70-518 and 70-521 only] -
VS4.27.1. Design for error handling. [Exam 70-518 and 70-521 only] -
This objective may include but is not limited to:
VS4.27.1.1. collecting user feedback when errors occur, [Exam 70-518 and 70-521 only] -
VS4.27.1.2. handling exceptions across tiers [Exam 70-518 and 70-521 only] -
This objective does not include: try/catch blocks
VS4.27.2. Evaluate and recommend a test strategy. [Exam 70-518 and 70-521 only] -
This objective may include but is not limited to:
VS4.27.2.1. recommending functional testing, [Exam 70-518 and 70-521 only] -
VS4.27.2.2. recommending reliability testing (performance testing, stress testing, scalability testing, duration testing) [Exam 70-518 and 70-521 only] -
This objective does not include: unit testing
VS4.27.3. Design a diagnostics and monitoring strategy. [Exam 70-518 and 70-521 only] -
This objective may include but is not limited to:
VS4.27.3.1. profiling, tracing, performance counters, audit trails (events and information); [Exam 70-518 and 70-521 only] -
VS4.27.3.2. usage reporting; [Exam 70-518 and 70-521 only] -
VS4.27.3.3. deciding where to log events (local vs. centralized reporting) [Exam 70-518 and 70-521 only] -
= = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = =
70-519 Pro: Designing and Developing Web Applications with Microsoft® .NET Framework 4
Skills being measured:
VS4.28. Designing the Application Architecture (19%) [~14 questions] [Exam 70-519 and 70-523 only] -
VS4.28.1. Plan the division of application logic. [Exam 70-519 and 70-523 only] -
This objective may include but is not limited to:
VS4.28.1.1. choosing between client-side and server side processing, [Exam 70-519 and 70-523 only] -
VS4.28.1.2. planning separation of concern, (for example, partitioning functionality between controllers and evaluating business and data service consumption), [Exam 70-519 and 70-523 only] -
VS4.28.1.3. planning for long-running processes (for example, synchronous vs. asynchronous) [Exam 70-519 and 70-523 only] -
VS4.28.2. Analyze requirements and recommend a system topology. [Exam 70-519 and 70-523 only] -
This objective may include but is not limited to:
VS4.28.2.1. designing interaction between applications, [Exam 70-519 and 70-523 only] -
VS4.28.2.2. mapping logical design to physical implementation, [Exam 70-519 and 70-523 only] -
VS4.28.2.3. validating nonfunctional requirements and cross-cutting concerns (for example, communications, operations management, and security), [Exam 70-519 and 70-523 only] -
VS4.28.2.4. evaluating baseline needs (for example, scale and quality of service) [Exam 70-519 and 70-523 only] -
VS4.28.3. Choose appropriate client-side technologies. [Exam 70-519 and 70-523 only] -
This objective may include but is not limited to:
VS4.28.3.1. JavaScript, [Exam 70-519 and 70-523 only] -
VS4.28.3.2. ASP.NET AJAX, [Exam 70-519 and 70-523 only] -
VS4.28.3.3. jQuery, [Exam 70-519 and 70-523 only] -
VS4.28.3.4. Microsoft Silverlight [Exam 70-519 and 70-523 only] -
VS4.28.4. Choose appropriate server-side technologies. [Exam 70-519 and 70-523 only] -
This objective may include but is not limited to:
VS4.28.4.1. user controls, [Exam 70-519 and 70-523 only] -
VS4.28.4.2. server controls, [Exam 70-519 and 70-523 only] -
VS4.28.4.3. partials, [Exam 70-519 and 70-523 only] -
VS4.28.4.4. custom HtmlHelper extensions, [Exam 70-519 and 70-523 only] -
VS4.28.4.5. Web parts, [Exam 70-519 and 70-523 only] -
VS4.28.4.6. inheriting controls, [Exam 70-519 and 70-523 only] -
VS4.28.4.7. dynamic data controls [Exam 70-519 and 70-523 only] -
VS4.28.5. Design state management. [Exam 70-519 and 70-523 only] -
This objective may include but is not limited to:
VS4.28.5.1. designing an application for the proper use of application state, session state, and request state (for example, ViewState, ControlState, Cache object, cookies, and client-side persistence) [Exam 70-519 and 70-523 only] -
VS4.29. Designing the User Experience (17%) [~13 questions] [Exam 70-519 and 70-523 only] -
VS4.29.1. Design the site structure. [Exam 70-519 and 70-523 only] -
This objective may include but is not limited to:
VS4.29.1.1. designing application segmentation for manageability and security (for example, using areas, shared views, master pages, and nested master pages), [Exam 70-519 and 70-523 only] -
VS4.29.1.2. appropriate use of style sheets, [Exam 70-519 and 70-523 only] -
VS4.29.1.3. client-side scripting, [Exam 70-519 and 70-523 only] -
VS4.29.1.4. themes, [Exam 70-519 and 70-523 only] -
VS4.29.1.5. client ID generation, [Exam 70-519 and 70-523 only] -
VS4.29.1.6. rendering element modes, [Exam 70-519 and 70-523 only] -
VS4.29.1.7. routing engine [Exam 70-519 and 70-523 only] -
VS4.29.2. Plan for cross-browser and/or form factors. [Exam 70-519 and 70-523 only] -
This objective may include but is not limited to:
VS4.29.2.1. evaluating the impact on client side behaviors, [Exam 70-519 and 70-523 only] -
VS4.29.2.2. themes, [Exam 70-519 and 70-523 only] -
VS4.29.2.3. bandwidth, [Exam 70-519 and 70-523 only] -
VS4.29.2.4. style sheets (including application design - task based or scaled rendering of existing page), [Exam 70-519 and 70-523 only] -
VS4.29.2.5. when to apply Browsers file, [Exam 70-519 and 70-523 only] -
VS4.29.2.6. structural approaches, [Exam 70-519 and 70-523 only] -
VS4.29.2.7. user agents, [Exam 70-519 and 70-523 only] -
VS4.29.2.8. different platforms (mobile vs. desktop) [Exam 70-519 and 70-523 only] -
VS4.29.3. Plan for globalization. [Exam 70-519 and 70-523 only] -
This objective may include but is not limited to:
VS4.29.3.1. designing to support local, regional, language, or cultural preferences, including UI vs. data localization (for example, implementing at database level or resource level), [Exam 70-519 and 70-523 only] -
VS4.29.3.2. when to use CurrentCulture vs. CurrentUICulture, [Exam 70-519 and 70-523 only] -
VS4.29.3.3. globalization rollout plan (for example, setting base default language, planning localization), [Exam 70-519 and 70-523 only] -
VS4.29.3.4. handling Unicode data (for example, what fields to include, request encoding), [Exam 70-519 and 70-523 only] -
VS4.29.3.5. right-to-left support, [Exam 70-519 and 70-523 only] -
VS4.29.3.6. vertical text and non-Latin topographies, [Exam 70-519 and 70-523 only] -
VS4.29.3.7. calendars, [Exam 70-519 and 70-523 only] -
VS4.29.3.8. data formatting, [Exam 70-519 and 70-523 only] -
VS4.29.3.9. sorting [Exam 70-519 and 70-523 only] -
VS4.30. Designing Data Strategies and Structures (18%) [~14 questions] [Exam 70-519 and 70-523 only] -
VS4.30.1. Design data access. [Exam 70-519 and 70-523 only] -
This objective may include but is not limited to:
VS4.30.1.1. choosing data access technologies such as ADO.NETData Services, Entity Framework, Windows Communications Foundation (WCF), and ASP.NET Web Services [Exam 70-519 and 70-523 only] -
VS4.30.2. Design data presentation and interaction. [Exam 70-519 only] -
This objective may include but is not limited to:
VS4.30.2.1. pulling data from data layer and binding into views, pages, and controls, and pulling data back to data layer by using ModelBinders, data source controls, and HtmlHelper extensions, or programmatically [Exam 70-519 only] -
VS4.30.3. Plan for data validation. [Exam 70-519 and 70-523 only] -
This objective may include but is not limited to:
VS4.30.3.1. contextual validation vs. data integrity, [Exam 70-519 and 70-523 only] -
VS4.30.3.2. where to validate data, [Exam 70-519 and 70-523 only] -
VS4.30.3.3. synchronization between UI and data layer, [Exam 70-519 and 70-523 only] -
VS4.30.3.4. data annotations [Exam 70-519 and 70-523 only] -
VS4.31. Designing Security Architecture and Implementation (17%) [~13 questions] [Exam 70-519 and 70-523 only] -
VS4.31.1. Plan for operational security. [Exam 70-519 and 70-523 only] -
This objective may include but is not limited to:
VS4.31.1.1. approaches for process- and resource-level security, including local and remote resources, [Exam 70-519 and 70-523 only] -
VS4.31.1.2. Code Access Security (CAS), including trust level, [Exam 70-519 and 70-523 only] -
VS4.31.1.3. process identity, [Exam 70-519 and 70-523 only] -
VS4.31.1.4. application pool, and identity tag [Exam 70-519 and 70-523 only] -
VS4.31.2. Design an authentication and authorization model. [Exam 70-519 only] -
This objective may include but is not limited to:
VS4.31.2.1. authentication providers, including WindowsForms, and custom user identity flowthrough (for example, trusted subsystem), [Exam 70-519 only] -
VS4.31.2.2. role management, [Exam 70-519 only] -
VS4.31.2.3. membership providers, [Exam 70-519 only] -
VS4.31.2.4. URL authorization (for example, AuthorizationAttribute), [Exam 70-519 only] -
VS4.31.2.5. file authorization, [Exam 70-519 only] -
VS4.31.2.6. Authorization Manager (AzMan) [Exam 70-519 only] -
VS4.31.3. Plan for minimizing attack surfaces. [Exam 70-519 and 70-523 only] -
This objective may include but is not limited to:
VS4.31.3.1. input validation, [Exam 70-519 and 70-523 only] -
VS4.31.3.2. throttling inputs, [Exam 70-519 and 70-523 only] -
VS4.31.3.3. request filtering, [Exam 70-519 and 70-523 only] -
VS4.31.3.4. where to use Secure Sockets Layer (SSL) [Exam 70-519 and 70-523 only] -
VS4.31. Preparing For and Investigating Application Issues (15%) [~11 questions] [Exam 70-519 and 70-523 only] -
VS4.31.1. Choose a testing methodology. [Exam 70-519 only] -
This objective may include but is not limited to:
VS4.31.1.1. black box, [Exam 70-519 only] -
VS4.31.1.2. white box, [Exam 70-519 only] -
VS4.31.1.3. integration, [Exam 70-519 only] -
VS4.31.1.4. regression, [Exam 70-519 only] -
VS4.31.1.5. coverage, [Exam 70-519 only] -
VS4.31.1.6. API testing, [Exam 70-519 only] -
VS4.31.1.7. performance testing, [Exam 70-519 only] -
VS4.31.1.8. security testing [Exam 70-519 only] -
This objective does not include: load testing, Web testing, unit testing
VS4.31.2. Design an exception handling strategy. [Exam 70-519 and 70-523 only] -
This objective may include but is not limited to:
VS4.31.2.1. HandleError attribute in MVC, [Exam 70-519 and 70-523 only] -
VS4.31.2.2. common error pages, [Exam 70-519 and 70-523 only] -
VS4.31.2.3. post-error processing, [Exam 70-519 and 70-523 only] -
VS4.31.2.4. global vs. page level [Exam 70-519 and 70-523 only] -
VS4.31.3. Recommend an approach to debugging. [Exam 70-519 only] -
This objective may include but is not limited to:
VS4.31.3.1. tools and approaches for a given scenario (for example, memory dumps, DebuggingAttributes, crashes vs. hangs, deadlocks, assembly binding), [Exam 70-519 only] -
VS4.31.3.2. when to attach to process (Visual Studio Development Server vs. IIS vs. Internet Explorer), [Exam 70-519 only] -
VS4.31.3.3. root cause analysis [Exam 70-519 only] -
This objective does not include: basic breakpoints
VS4.31.4. Recommend an approach to performance issues. [Exam 70-519 and 70-523 only] -
This objective may include but is not limited to:
VS4.31.4.1. which instrumentation to watch or create (including performance counters and event tracing) to analyze performance issues, [Exam 70-519 and 70-523 only] -
VS4.31.4.2. page and fragment caching [Exam 70-519 and 70-523 only] -
VS4.32. Designing a Deployment Strategy (14%) [~10 questions] [Exam 70-519 and 70-523 only] -
VS4.32.1. Design a deployment process. [Exam 70-519 and 70-523 only] -
This objective may include but is not limited to:
VS4.32.1.1. Windows Installer (MSI) vs. xcopy vs. Web Deployment Tool, [Exam 70-519 and 70-523 only] -
VS4.32.1.2. scaling, [Exam 70-519 and 70-523 only] -
VS4.32.1.3. rolling deployments [Exam 70-519 and 70-523 only] -
VS4.32.2. Design configuration management. [Exam 70-519 only] -
This objective may include but is not limited to:
VS4.32.2.1. using the ConfigSource attribute (for example, connection strings), [Exam 70-519 only] -
VS4.32.2.2. staging vs. production vs. development, [Exam 70-519 only] -
VS4.32.2.3. topologies, [Exam 70-519 only] -
VS4.32.2.4. machine.config vs. web.config, [Exam 70-519 only] -
VS4.32.2.5. using IIS vs. Visual Studio Development Server during development, [Exam 70-519 only] -
VS4.32.2.6. application pools, [Exam 70-519 only] -
VS4.32.2.7. configuration inheritance [Exam 70-519 only] -
VS4.32.3. Plan for scalability and reliability. [Exam 70-519 and 70-523 only] -
This objective may include but is not limited to:
VS4.32.3.1. scaling up, [Exam 70-519 and 70-523 only] -
VS4.32.3.2. scaling out, [Exam 70-519 and 70-523 only] -
VS4.32.3.3. at physical level and at architectural level, [Exam 70-519 and 70-523 only] -
VS4.32.3.4. impact of offloading technologies on load balancing, including state, [Exam 70-519 and 70-523 only] -
VS4.32.3.5. synchronizing machine and encryption keys [Exam 70-519 and 70-523 only] -
VS4.32.4. Design a health monitoring strategy. [Exam 70-519 only] -
This objective may include but is not limited to:
VS4.32.4.1. when to monitor application or business-related events (e.g., on UI every time clicked or in business layer), [Exam 70-519 only] -
VS4.32.4.2. determining a strategy for using ASP.NET Health Monitoring, [Exam 70-519 only] -
VS4.32.4.3. throttling, [Exam 70-519 only] -
VS4.32.4.4. filtering, [Exam 70-519 only] -
VS4.32.4.5. delivery method [Exam 70-519 only] -
= = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = =
70-506 TS: Silverlight 4, Development
Skills being measured:
506.1. Laying Out a User Interface (15%) [Exam 70-506 only] -
506.1.1. Arrange content with panels. [Exam 70-506 only] -
This objective may include but is not limited to:
506.1.1.1. arranging content with panels (grid, stack panels, canvas, border, scroll viewer, ViewBox), [Exam 70-506 only] -
506.1.1.2. managing grid properties (autosizing, star sizing, column definitions, row definitions, gridlines), [Exam 70-506 only] -
506.1.1.3. setting Z order, [Exam 70-506 only] -
506.1.1.4. setting visibility, [Exam 70-506 only] -
506.1.1.5. setting orientation, [Exam 70-506 only] -
506.1.1.6. setting positioning [Exam 70-506 only] -
506.1.2. Implement and configure core controls. [Exam 70-506 only] -
This objective may include but is not limited to:
506.1.2.1. implementing and configuring core controls (textbox, button, text block, checkbox) and content controls, [Exam 70-506 only] -
506.1.2.1.1. textbox control, [Exam 70-506 only] - Used to obtain input from the user or to display text. The text box control is generally used for editable text, although it can also be set to read-only. Text boxes can display multiple lines and wrap text to the size of the control.
506.1.2.1.2. button control, [Exam 70-506 only] - Provides a click event to respond to user input from a mouse, keyboard, stylus, or other input device.
506.1.2.1.3. text block control, [Exam 70-506 only] - Displays small amounts of text content. You can set the content of a TextBlock by using the Text property. Alternatively, you can set the Inlines property to a collection of Inline objects, such as Run or LineBreak objects.
506.1.2.1.4. checkbox control, [Exam 70-506 only] -Enables the user to select (check) or clear (uncheck) an option. The CheckBox can have three states: checked, unchecked, and indeterminate. Use a CheckBox to give the user an option, such as true/false or yes/no, or to select from a list of options. The CheckBox is a ContentControl.
506.1.2.1.5. content controls, [Exam 70-506 only] - Represents a control with a single piece of content. Controls such as Button, CheckBox, and ScrollViewer directly or indirectly inherit from this class.
506.1.2.2. referencing namespaces [Exam 70-506 only] -
506.1.3. Create user controls. [Exam 70-506 only] -
This objective may include but is not limited to:
506.1.3.1. creating user controls, [Exam 70-506 only] -
506.1.3.2. creating control parts, [Exam 70-506 only] -Silverlight implements the control contract through a parts and states model. The parts and states model keeps a separation between logic and visuals, while still maintaining an explicit control contract between the designer and the developer. The main concepts in the parts and states model are parts, states, state groups and visual transitions. Parts are named elements inside the control template. The control logic expects these parts to be in the control template.
506.1.3.3. mapping control parts [Exam 70-506 only] -
506.1.4. Implement a navigation framework. [Exam 70-506 only] -
This objective may include but is not limited to:
506.1.4.1. implementing caching on a frame, [Exam 70-506 only] -
506.1.4.2. modifying journal mode, [Exam 70-506 only] -
506.1.4.3. handling navigation events (Navigating, Navigated, NavigationFailed, NavigationStopped), [Exam 70-506 only] -
506.1.4.4. implementing and configuring deep linking [Exam 70-506 only] -
506.1.5. Display collections of items. [Exam 70-506 only] -
This objective may include but is not limited to:
506.1.5.1. implementing and configuring item controls (datagrid, listbox, items control, combo box, tree view), [Exam 70-506 only] -
506.1.5.2. working with selected items and indices [Exam 70-506 only] -
506.1.6. Play media files. [Exam 70-506 only] -
This objective may include but is not limited to:
506.1.6.1. implementing digital rights management (DRM), [Exam 70-506 only] -
506.1.6.2. playing streams, [Exam 70-506 only] -
506.1.6.3. creating timeline markers, [Exam 70-506 only] -
506.1.6.4. playing multiple audio tracks, [Exam 70-506 only] -
506.1.6.5. displaying closed captioning, [Exam 70-506 only] -
506.1.6.7. responding to timeline marker events, [Exam 70-506 only] -
506.1.6.8. handling media playback events [Exam 70-506 only] -
506.2. Enhancing the User Interface (14%) [Exam 70-506 only] -
506.2.1. Create or modify control styles. [Exam 70-506 only] -
This objective may include but is not limited to:
506.2.1.1. setting a style locally, [Exam 70-506 only] -
506.2.1.2. setting a style at the page control level, [Exam 70-506 only] -
506.2.1.3. setting a style globally, [Exam 70-506 only] -
506.2.1.4. implementing implicit styles, [Exam 70-506 only] -
506.2.1.5. overriding styles at different levels, [Exam 70-506 only] -
506.2.1.6. creating based-on styles [Exam 70-506 only] -
506.2.2. Create control templates. [Exam 70-506 only] -
This objective may include but is not limited to:
506.2.2.1. creating a template, [Exam 70-506 only] -
506.2.2.2. attaching a template, [Exam 70-506 only] -
506.2.2.3. implementing a content placeholder, [Exam 70-506 only] -
506.2.2.4. implementing template binding [Exam 70-506 only] -
506.2.3. Create or modify data templates. [Exam 70-506 only] -
This objective may include but is not limited to:
506.2.3.1. modifying item templates for data controls, [Exam 70-506 only] -
506.2.3.2. creating a create template, [Exam 70-506 only] -
506.2.3.3. creating an update template, [Exam 70-506 only] -
506.2.3.4. using a user control as a data template [Exam 70-506 only] -
506.2.4. Manipulate visuals. [Exam 70-506 only] -
This objective may include but is not limited to:
506.2.4.1. transforming controls by using skew transformations, rotate transformations, scale transformations, translate transformations, or perspective transformations; [Exam 70-506 only] -
506.2.4.2. applying pixel shaders [Exam 70-506 only] -
506.2.5. Animate visuals. [Exam 70-506 only] -
This objective may include but is not limited to:
506.2.5.1. creating storyboards, [Exam 70-506 only] -
506.2.5.2. programmatically starting and stopping storyboards, [Exam 70-506 only] -
506.2.5.3. implementing easing functions, [Exam 70-506 only] -
506.2.5.4. using keyframes, [Exam 70-506 only] -
506.2.5.5. triggering storyboard on load, [Exam 70-506 only] -
506.2.5.6. repeating and reversing storyboards, [Exam 70-506 only] -
506.2.5.7. setting keyframe begin time, [Exam 70-506 only] -
506.2.5.8. responding to events, [Exam 70-506 only] -
506.2.5.9. configuring bitmap caching [Exam 70-506 only] -
506.2.6. Implement behaviors. [Exam 70-506 only] -
This objective may include but is not limited to:
506.2.6.1. triggering storyboards by using behaviors, [Exam 70-506 only] -
506.2.6.2. dragging and dropping elements, [Exam 70-506 only] -
506.2.6.3. calling a method [Exam 70-506 only] -
506.2.7. Manage the visual state. [Exam 70-506 only] -
This objective may include but is not limited to:
506.2.7.1. creating states, [Exam 70-506 only] -
506.2.7.2. creating state groups, [Exam 70-506 only] -
506.2.7.3. transitioning states, [Exam 70-506 only] -
506.2.7.4. programmatically changing states [Exam 70-506 only] -
506.3. Implementing Application Logic (16%) [Exam 70-506 only] -
506.3.1. Handle events. [Exam 70-506 only] -
This objective may include but is not limited to:
506.3.1.1. handling routed events, [Exam 70-506 only] -
506.3.1.2. bubbling events, [Exam 70-506 only] -
506.3.1.3. implementing AddHandler. [Exam 70-506 only] -
506.3.2. Consume services asynchronously. [Exam 70-506 only] -
This objective may include but is not limited to:
506.3.2.1. creating and adding service references, [Exam 70-506 only] -
506.3.2.2. handling asynchronous completed events, [Exam 70-506 only] -
506.3.2.3. configuring service endpoints, [Exam 70-506 only] -
506.3.2.4. handling service exceptions, [Exam 70-506 only] -
506.3.2.5. handling timeouts [Exam 70-506 only] -
506.3.3. Work with background threads. [Exam 70-506 only] -
This objective may include but is not limited to:
506.3.3.1. spawning a background thread to execute code, [Exam 70-506 only] -
506.3.3.2. returning data to the UI thread by using the dispatcher object, [Exam 70-506 only] -
506.3.3.3. implementing the dispatcher timer [Exam 70-506 only] -
506.3.4. Work with dependency properties. [Exam 70-506 only] -
This objective may include but is not limited to:
506.3.4.1. creating dependency properties, [Exam 70-506 only] -
506.3.4.2. specifying dependency property metadata, [Exam 70-506 only] -
506.3.4.3. getting and setting dependency property values [Exam 70-506 only] -
506.3.5. Interact with attached properties. [Exam 70-506 only] -
This objective may include but is not limited to:
506.3.5.1. setting attached properties in XAML, [Exam 70-506 only] -
506.3.5.2. getting and setting attached properties programmatically [Exam 70-506 only] -
506.3.6. Implement ICommand. [Exam 70-506 only] -
This objective may include but is not limited to:
506.3.6.1. executing an ICommand, [Exam 70-506 only] -
506.3.6.2. implementing an ICommand, [Exam 70-506 only] -
506.3.6.3. binding to an ICommand, [Exam 70-506 only] -
506.3.6.4. passing a parameter [Exam 70-506 only] -
506.4. Working with Data (17%) [Exam 70-506 only] -
506.4.1. Format data. [Exam 70-506 only] -
This objective may include but is not limited to:
506.4.1.1. formatting string values in data binding, [Exam 70-506 only] -
506.4.1.2. formatting culture-specific string values [Exam 70-506 only] -
506.4.2. Implement data binding. [Exam 70-506 only] -
This objective may include but is not limited to:
506.4.2.1. setting the data context, [Exam 70-506 only] -
506.4.2.2. binding data sets to controls, [Exam 70-506 only] -
506.4.2.3. binding elements to other elements, [Exam 70-506 only] -
506.4.2.4. implementing INotifyPropertyChanged, [Exam 70-506 only] -
506.4.2.5. implementing ObservableCollection, [Exam 70-506 only] -
506.4.2.6. setting binding modes, [Exam 70-506 only] -
506.4.2.7. setting a fallback value [Exam 70-506 only] -
506.4.3. Create and consume value converters. [Exam 70-506 only] -
This objective may include but is not limited to:
506.4.3.1. creating a value converter, [Exam 70-506 only] -
506.4.3.2. referencing a value converter, [Exam 70-506 only] -
506.4.3.3. passing parameters [Exam 70-506 only] -
506.4.4. Implement data validation. [Exam 70-506 only] -
This objective may include but is not limited to:
506.4.4.1. implementing the INotifyDataErrorInfo interface, [Exam 70-506 only] -
506.4.4.2. implementing the IDataErrorInfo interface, [Exam 70-506 only] -
506.4.4.3. implementing data binding errors (NotifyOnValidationError, ValidatesOnExceptions, ValidatesOnDataErrors, ValidatesOnNotifyDataErrors) [Exam 70-506 only] -
506.5. Interacting with a Host Platform (11%) [Exam 70-506 only] -
506.5.1. Implement the printing API. [Exam 70-506 only] -
This objective may include but is not limited to:
506.5.1.1. handling multiple pages, [Exam 70-506 only] -
506.5.1.2. adding page numbers, [Exam 70-506 only] -
506.5.1.3. printing off-screen visuals [Exam 70-506 only] -
506.5.2. Create out-of-browser applications. [Exam 70-506 only] - You can configure Silverlight-based applications so that users can install them from their host Web pages and run them outside the browser. Configuration is a simple matter of providing additional information about an application. Silverlight uses this information to display the installation user interface (UI), shortcuts for launching the application, and an out-of-browser application window. This information is supplied through the application manifest, so that you can enable out-of-browser support in an existing application without rebuilding. For more information, see How to: Configure an Application for Out-of-Browser Support.
This objective may include but is not limited to:
506.5.2.1. enabling trusted applications, [Exam 70-506 only] - By default, Silverlight-based applications run in partial trust, which means they run within a security sandbox. Sandboxed applications have restricted access to the local computer and are constrained in other ways that help prevent malicious behavior. In some cases, these constraints prevent scenarios that are useful or necessary, particularly for line-of-business applications. However, you can configure out-of-browser applications to require elevated trust. After installation, these trusted applications can bypass some of the restrictions of the security sandbox. For example, trusted applications can access user files and use full-screen mode without keyboard restrictions.
506.5.2.2. checking for network connectivity, [Exam 70-506 only] - You can check the network connectivity state by calling the NetworkInterface.GetIsNetworkAvailable method. To respond to connectivity changes, handle the NetworkChange.NetworkAddressChanged event.
506.5.2.3. installing and uninstalling applications, [Exam 70-506 only] -
506.5.2.4. displaying toast notifications, [Exam 70-506 only] -
506.5.2.5. checking and updating application versions, [Exam 70-506 only] - To check for and retrieve an update, call the CheckAndDownloadUpdateAsync method on the UI thread, and handle the Application.CheckAndDownloadUpdateCompleted event. In the event handler, the UpdateAvailable property is true if a newer version of your application was discovered and successfully downloaded. In this case, you can alert the user to restart in order to load the update.
506.5.2.6. setting the application to be chromeless, [Exam 70-506 only] -
506.5.2.7. displaying HTML content by using the web browser control, [Exam 70-506 only] -
506.5.2.8. signing the XAP file, [Exam 70-506 only] -
506.5.2.9. working with COM Interop [Exam 70-506 only] -
506.5.3. Access isolated storage. [Exam 70-506 only] -
This objective may include but is not limited to:
506.5.3.1. reading from and writing to isolated storage, [Exam 70-506 only] -
506.5.3.2. increasing storage size [Exam 70-506 only] -
506.5.4. Interact with the HTML DOM. [Exam 70-506 only] -
This objective may include but is not limited to:
506.5.4.1. accessing cookies, querystring values, and header info; [Exam 70-506 only] -
506.5.4.2. calling into JavaScript from Silverlight; [Exam 70-506 only] -
506.5.4.3. calling into Silverlight from JavaScript; [Exam 70-506 only] -
506.5.4.4. Silverlight-to-Silverlight communication; [Exam 70-506 only] -
506.5.4.5. manipulating the DOM [Exam 70-506 only] -
506.5.5. Access the clipboard. [Exam 70-506 only] -
This objective may include but is not limited to:
506.5.5.1. copying and pasting text, [Exam 70-506 only] -
506.5.5.2. handling situations when the user declines [Exam 70-506 only] -
506.5.6. Read from and write to the host file system. [Exam 70-506 only] -
This objective may include but is not limited to:
506.5.6.1. read from and write to various locations, [Exam 70-506 only] -
506.5.6.2. drag and drop from the file system, [Exam 70-506 only] -
506.5.6.3. using IO dialogs [Exam 70-506 only] -
506.5.7. Handle alternative input methods. [Exam 70-506 only] -
This objective may include but is not limited to:
506.5.7.1. handling right-click, [Exam 70-506 only] -
506.5.7.2. mouse wheel , [Exam 70-506 only] -
506.5.7.3. and multi-touch events [Exam 70-506 only] -
506.6. Structuring Applications (13%) [Exam 70-506 only] -
506.6.1. Create and consume resource dictionaries. [Exam 70-506 only] -
This objective may include but is not limited to:
506.6.1.1. utilizing sample data, [Exam 70-506 only] -
506.6.1.2. selecting resources, [Exam 70-506 only] -
506.6.1.3. merging resource dictionaries [Exam 70-506 only] -
506.6.2. Implement localization and globalization. [Exam 70-506 only] -
This objective may include but is not limited to:
506.6.2.1. translating strings, configuring right-to-left language support and FlowDirection [Exam 70-506 only] -
506.6.3. Handle application-level events. [Exam 70-506 only] -
This objective may include but is not limited to:
506.6.3.1. handling Exit, Startup, and UnhandledException events [Exam 70-506 only] -
506.7. Deploying Applications (13%) [Exam 70-506 only] -
506.7.1. Configure the Silverlight plug-in. [Exam 70-506 only] -
This objective may include but is not limited to:
506.7.1.1. passing initialization parameters; [Exam 70-506 only] -
506.7.1.2. configuring windowless mode, background color, and sizing of plugins; [Exam 70-506 only] -
506.7.1.3. incorporating nonstandard splash screens, [Exam 70-506 only] -
506.7.1.4. enabling GPU acceleration, [Exam 70-506 only] -
506.7.1.5. setting the frame rate [Exam 70-506 only] -
506.7.2. Dynamically load application resources. [Exam 70-506 only] -
This objective may include but is not limited to:
506.7.2.1. downloading a zip file, [Exam 70-506 only] -
506.7.2.2. extracting content from a zip file, [Exam 70-506 only] -
506.7.2.3. enabling assembly caching [Exam 70-506 only] -
506.7.3. Create a client access policy. [Exam 70-506 only] -
This objective may include but is not limited to:
506.7.3.1. accessing cross-domain content, [Exam 70-506 only] -
506.7.3.2. accessing communication channels, [Exam 70-506 only] -
506.7.3.3. limiting access to resources [Exam 70-506 only] -
= = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = =
70-583 Pro: Designing and Developing Windows Azure Applications
Skills being measured:
583.1. Designing Data Storage Architecture (18%) [Exam 70-583 only] -
583.1.1. Choose the appropriate data storage model based on technical requirements. [Exam 70-583 only] -
This objective may include but is not limited to:
583.1.1.1. SQL Azure, [Exam 70-583 only] -
583.1.1.2. Cloud drive, [Exam 70-583 only] -
583.1.1.3. performance, [Exam 70-583 only] -
583.1.1.4. scalability, [Exam 70-583 only] -
583.1.1.5. accessibility from other applications and platforms, [Exam 70-583 only] -
583.1.1.6. Windows Azure storage services: blobs, tables, and queues; [Exam 70-583 only] -
583.1.2. Design a synchronization strategy. [Exam 70-583 only] -
This objective may include but is not limited to:
583.1.2.1. synchronize online and offline data by using sync framework and SQL Azure Sync service [Exam 70-583 only] -
583.1.3. Plan a cost-effective data architecture based on business requirements. [Exam 70-583 only] -
This objective may include but is not limited to:
583.1.3.1. code migration cost, [Exam 70-583 only] -
583.1.3.2. data migration cost, [Exam 70-583 only] -
583.1.3.3. bandwidth cost [Exam 70-583 only] -
583.1.4. Design a database migration plan from SQL Server to SQL Azure. [Exam 70-583 only] -
This objective may include but is not limited to:
583.1.4.1. differences between SQL Azure and SQL Server, [Exam 70-583 only] -
583.1.4.2. concessions for unsupported features, [Exam 70-583 only] -
583.1.4.3. schema, [Exam 70-583 only] -
583.1.4.4. data, [Exam 70-583 only] -
583.1.4.5. reporting an analytic tooling [Exam 70-583 only] -
583.1.5. Plan for media storage and accessibility. [Exam 70-583 only] -
This objective may include but is not limited to:
583.1.5.1. media accessibility, [Exam 70-583 only] -
583.1.5.2. global distribution with Content Delivery Network (CDN), [Exam 70-583 only] -
583.1.5.3. blob storage [Exam 70-583 only] -
583.2. Optimizing Data Access and Messaging (17%) [Exam 70-583 only] -
583.2.1. Optimize a data access strategy. [Exam 70-583 only] -
This objective may include but is not limited to:
583.2.1.1. batch operations and performance techniques, [Exam 70-583 only] -
583.2.1.2. data latency due to location, [Exam 70-583 only] -
583.2.1.3. saving bandwidth cost [Exam 70-583 only] -
583.2.2. Design a reliable data access layer to access SQL Azure. [Exam 70-583 only] -
This objective may include but is not limited to:
582.2.2.1. define client data access standards, [Exam 70-583 only] -
582.2.2.2. connection timeout scenarios [Exam 70-583 only] -
583.2.3. Design an efficient strategy to avoid data access throttling. [Exam 70-583 only] -
This objective may include but is not limited to:
583.2.3.1. table storage, [Exam 70-583 only] -
583.2.3.2. partition, [Exam 70-583 only] -
583.2.3.3. transaction volumes, [Exam 70-583 only] -
583.2.3.4. SQL Azure CPU throttling, [Exam 70-583 only] -
583.2.3.5. query design [Exam 70-583 only] -
583.2.4. Design a queue strategy that guarantees idempotency. [Exam 70-583 only] -
This objective may include but is not limited to:
583.2.4.1. multiple processing, [Exam 70-583 only] -
583.2.4.2. multiple consumers, [Exam 70-583 only] -
583.2.4.3. long-running processes [Exam 70-583 only] -
583.2.5. Design communication strategies using queues. [Exam 70-583 only] -
This objective may include but is not limited to:
583.2.5.1. asynchronous message dispatch, [Exam 70-583 only] -
583.2.5.2. durable message handling, [Exam 70-583 only] -
583.2.5.3. multiple consumers for scalability [Exam 70-583 only] -
583.3. Designing the Application Architecture (19%) [Exam 70-583 only] -
583.3.1. Choose appropriate role types for compute instances. [Exam 70-583 only] -
This objective may include but is not limited to:
583.3.1.1. difference between web and worker roles, [Exam 70-583 only] -
583.3.1.2. considerations for hosting standalone applications, [Exam 70-583 only] -
583.3.1.3. scaling considerations for web and worker roles [Exam 70-583 only] -
583.3.2. Optimize worker role design for efficient resource usage. [Exam 70-583 only] -
This objective may include but is not limited to:
583.3.2.1. design a worker scheme for handling multiple background tasks, [Exam 70-583 only] -
583.3.2.2. storage [Exam 70-583 only] -
583.3.3. Identify performance vs. cost trade-offs. [Exam 70-583 only] -
This objective may include but is not limited to:
583.3.3.1. number of instances, [Exam 70-583 only] -
583.3.3.2. VM size, [Exam 70-583 only] -
583.3.3.3. Service Bus connections, [Exam 70-583 only] -
583.3.3.4. geographic location of the resources [Exam 70-583 only] -
583.3.4. Choose appropriate ways to respond to Azure Fabric Controller events. [Exam 70-583 only] -
This objective may include but is not limited to:
583.3.4.1. instance Start and Run events, [Exam 70-583 only] -
583.3.4.2. instance count change, [Exam 70-583 only] -
583.3.4.3. service configuration changes [Exam 70-583 only] -
583.3.5. Develop a plan to migrate existing applications and services. [Exam 70-583 only] -
This objective may include but is not limited to:
583.3.5.1. identify dependencies of an existing application that will not translate or will require migration to Azure platform, [Exam 70-583 only] -
583.3.5.2. determine the gap to migrate an existing application to Azure, [Exam 70-583 only] -
583.3.5.3. assess an existing solution for suitability to migrate to Azure [Exam 70-583 only] -
583.4. Preparing for Application and Service Deployment (15%) [Exam 70-583 only] -
583.4.1. Choose an appropriate upgrade strategy. [Exam 70-583 only] -
This objective may include but is not limited to:
583.4.1.1. upgrade path options such as staging vs. production, [Exam 70-583 only] -
583.4.1.2. port number and protocol, [Exam 70-583 only] -
583.4.1.3. service definition changes, [Exam 70-583 only] -
583.4.1.4. service configuration changes, [Exam 70-583 only] -
583.4.1.5. affinity, [Exam 70-583 only] -
583.4.1.6. upgrade domains, [Exam 70-583 only] -
583.4.1.7. operating system versions [Exam 70-583 only] -
583.4.2. Choose the appropriate virtual machine size. [Exam 70-583 only] -
This objective may include but is not limited to:
583.4.2.1. local size storage, [Exam 70-583 only] -
583.4.2.2. memory, [Exam 70-583 only] -
583.4.2.3. raw processing power, [Exam 70-583 only] -
583.4.2.4. bandwidth [Exam 70-583 only] -
583.4.3. Plan a deployment for the entire application life cycle. [Exam 70-583 only] -
This objective may include but is not limited to:
583.4.3.1. Windows Azure portal, [Exam 70-583 only] -
583.4.3.2. Microsoft Visual Studio, [Exam 70-583 only] -
583.4.3.3. Service Management API, [Exam 70-583 only] -
583.4.3.4. deploy from build server, [Exam 70-583 only] -
583.4.3.5. manage SSL certificates for hosted services [Exam 70-583 only] -
583.4.4. Define a resource-efficient environment for application development and testing. [Exam 70-583 only] -
This objective may include but is not limited to:
583.4.4.1. deployment status, [Exam 70-583 only] -
583.4.4.2. hourly metering, [Exam 70-583 only] -
583.4.4.3. difference between DevFabric and AzureFabric [Exam 70-583 only] -
583.4.5. Choose a naming scheme for resources. [Exam 70-583 only] -
This objective may include but is not limited to:
583.4.5.1. custom domain name, [Exam 70-583 only] -
583.4.5.2. service registry in Service Bus, [Exam 70-583 only] -
583.4.5.3. Content Delivery Network (CDN) [Exam 70-583 only] -
583.5. Investigating and Analyzing Applications (16%) [Exam 70-583 only] -
583.5.1. Plan, collect, and interpret diagnostics and instrumentation data. [Exam 70-583 only] -
This objective may include but is not limited to:
583.1.1.1. polling frequency, [Exam 70-583 only] -
583.5.1.2. upload frequency, [Exam 70-583 only] -
583.5.1.3. different log types, [Exam 70-583 only] -
583.5.1.4. trace levels [Exam 70-583 only] -
583.5.2. Identify SQL Azure performance and storage capacity with Dynamic Management Views. [Exam 70-583 only] -
This objective may include but is not limited to:
583.5.2.1. identify long-running queries, [Exam 70-583 only] -
583.5.2.2. monitor connections and capacity, [Exam 70-583 only] -
583.5.2.3. capabilities of the Dynamic Management Views [Exam 70-583 only] -
583.5.3. Identify and mitigate deployment and runtime issues for Windows Azure. [Exam 70-583 only] -
This objective may include but is not limited to:
583.5.3.1. diagnose Start-Stop cycling, [Exam 70-583 only] -
583.5.3.2. runtime memory issues, [Exam 70-583 only] -
583.5.3.3. examining instrumentation and diagnostic outputs, [Exam 70-583 only] -
583.5.3.4. IntelliTrace, [Exam 70-583 only] -
583.5.3.5. SQL Azure connectivity, [Exam 70-583 only] -
583.5.3.6. access control, [Exam 70-583 only] -
583.5.3.7. Service Bus connectivity, [Exam 70-583 only] -
583.5.3.8. role startup activity [Exam 70-583 only] -
583.6. Designing Integrated Solutions (15%) [Exam 70-583 only] -
583.6.1. Design hybrid solutions. [Exam 70-583 only] -
This objective may include but is not limited to:
583.6.1.1. Cloud bursting, [Exam 70-583 only] -
583.6.1.2. interoperability with non-Microsoft technologies, [Exam 70-583 only] -
583.6.1.3. integrate with existing applications and services not hosted in Azure, [Exam 70-583 only] -
583.6.1.4. Service Bus, [Exam 70-583 only] -
583.6.1.4. publish subscribe [Exam 70-583 only] -
583.6.2. Identify and mitigate connectivity issues in hybrid solutions. [Exam 70-583 only] -
This objective may include but is not limited to:
583.6.2.1. non-Azure databases and services, [Exam 70-583 only] -
583.6.2.2. relay bindings, [Exam 70-583 only] -
583.6.2.3. connection sizing with Service Bus, [Exam 70-583 only] -
583.6.2.4. store and forward [Exam 70-583 only] -
583.6.3. Plan for appropriate access control schemes based on security requirements. [Exam 70-583 only] -
This objective may include but is not limited to:
583.6.3.1. identity federation, [Exam 70-583 only] - Windows Identity Foundation (WIF) includes support for federated authentication in ASP.NET applications. Federated authentication allows a security token service (STS) in one trust domain to provide authentication information to an STS in another trust domain when there is a trust relationship between the two domains.
583.6.3.2. claims transformation, [Exam 70-583 only] -
583.6.3.3. claims-based security [Exam 70-583 only] -
= = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = =