WPF - 1.4
Extension ID
com.castsoftware.wpf
What’s new?
See Release Notes for more information.
Description
This extension provides support for WPF (Windows Presentation Foundation). The calculation of Automated Function Points for your .NET analyses will be supplemented through the creation of new objects and links specific to the WPF framework that will link back to objects/links produced by the base .NET analyzer.
In what situation should you install this extension?
If your .NET application contains WPF (Windows Presentation Foundation) source code and you want to view these object types and their links, then you should install this extension.
Framework support
Framework | Version | Supported |
---|---|---|
Windows Presentation Foundation | All versions up to 4.5 | ✅ |
Function Point, Quality and Sizing support
- Function Points (transactions): a green tick indicates that OMG Function Point counting and Transaction Risk Index are supported
- Quality and Sizing: a green tick indicates that CAST can measure size and that a minimum set of Quality Rules exist
Function Points (transactions) | Quality and Sizing |
---|---|
✅ | ❌ |
Compatibility
Release | Operating System | Supported |
---|---|---|
v3/8.4.x | Microsoft Windows / Linux | ✅ |
v2/8.3.x | Microsoft Windows | ✅ |
Download and installation instructions
When using CAST Console, the extension will be installed automatically. If you need to change the release, use the Included interface in Console:
What results can you expect?
Objects
All objects are represented under the File browser > Xaml Source file folders in CAST Enlighten as either WPF Custom Controls, or WPF Controls:
Icon | Object type |
---|---|
![]() |
XAML Control |
![]() |
XAML Custom Control |
Note that if the Name Attribute of an object is present, then it will be used to display that object in CAST Enlighten. For example:
Name not present | Name present |
---|---|
![]() |
![]() |
The following objects are detected:
- Border
- BulletDecorator
- Button
- Calendar
- Canvas
- CheckBox
- ComboBox
- ContextMenu
- DataGrid
- DatePicker
- DockPanel
- DocumentViewer
- DropShadowBitmapEffect
- Expander
- FlowDocumentPageViewer
- FlowDocumentReader
- FlowDocumentScrollViewer
- Frame
- Grid
- GridSplitter
- GroupBox
- Image
- Label
- ListBox
- ListView
- Menu
- Panel
- PasswordBox
- Popup
- ProgressBar
- PrintDialog
- RadioButton
- RepeatButton
- Ribbon (WPF)
- RichTextBox
- ScrollBar
- ScrollViewer
- Separator
- Slider
- StackPanel
- StatusBar
- TabControl
- TextBlock
- TextBox
- ToggleButton
- ToolBar
- ToolTip
- TreeView
- UserControl
- WrapPanel
- Viewbox
Links
Source | Link type | Target | Example |
---|---|---|---|
XAML Control | call | Action Event method implemented in source file | ![]() |
XAML Control | relyOn | Set and get accessors of Property implemented in source file | ![]() |
XAML Control | relyOn | XAML Control which is used | ![]() |
XAML Control | call | Binding property in DataContext | ![]() |
XAML Custom Control | relyOn | XAML page that contains its definition | ![]() |
XAML Custom Control | relyOn | Defined Class | ![]() |
XAML Custom Control | AccessExec | Corresponding Property | ![]() |
XAML Custom Control | AccessExec | Corresponding Event handler function | ![]() |
XAML Source File | relyOn | Referred Class | ![]() |
XAML Source File | relyOn | Datacontext class | ![]() |
Limitations
In this section we list the most significant functional limitations that may affect the analysis of applications using WPF:
- Binding in code is not supported - see https://msdn.microsoft.com/en-us/library/ms742863(v=vs.110).aspx?cs-save-lang=1&cs-lang=csharp#code-snippet-1 for an example
- Binding links are not handled correctly when the same binding target exists in different classes
- The direction of the data flow (Binding.Mode properties such as OneWay, TwoWay and OneWayToSource) is not supported - see https://msdn.microsoft.com/en-us/library/ms752347(v=vs.110).aspx#direction_of_data_flow for an example
- The RelativeSource property (Gets or sets the binding source by specifying its location relative to the position of the binding target) is not supported - see https://msdn.microsoft.com/en-us/library/system.windows.data.binding.relativesource(v=vs.110).aspx for an example
- Links between XAML Source File objects and code embedded in XAML are not supported.