Release Notes - v3.1.0

July 13th 2017


This is a summary of the changes introduced in v3.1.0 of MFractor for Visual Studio Mac.

We have rebranded our free tier into MFractor Lite and our paid tier into MFractor Professional. This is to better reflect the value difference between the different licensing levels.

In terms of features, this release adds a new on-boarding window to make it as easy as possible to learn to use MFractor. We've also added a suite of new professional features for C# and Android, a heap of bug fixes and a few handy XAML refactorings.

Lastly, we are slowly working through the documentation and adding a comprehensive explanation for each MFractor feature. This is ongoing and will take some time to complete.

Lite Features

  • Onboarding Window: When MFractor is first installed, after activation, we now display an onboarding window to teaches you the fundamentals of using MFractor.
  • XAML Code Actions
    • Quickly migrate to the new OnPlatform methodology with the Migrate OnPlatform Usage code action.
    • Generate a new view from an unknown XAML node as a XAML view with a code behind class.
  • XAML Code Analysis
    • For Styles, inspect that it sets a TargetType attribute.
    • For Style Setters, inspect that the Property value maps to a property in the type provided byt the Styles TargetType attribute.

Professional Features


  • Added a Feedback menu into the Help -> MFractor menu. Use this menu to file bug reports and feature requests.
  • The Generate Property Into Class now infers the type of the new property based on the attributes value and name. This behaviour can be disabled through the configuration engine.
  • Issues that detect redundant XAML now grey out that code section.
  • Issues that detect code improvements now underline that code segment.
  • Significantly improved analysis times for XAML documents.
  • Reduced memory consumption across the entire product.
  • The following code analysers have been removed:
    • Detect when an abstract class was used in XAML. This caused false errors.
    • Detect when the root XAML node has an x:Name declaration; it's likely the developer wants to reference the root element inside an x:Reference markup extension.
  • The bindable property generator can now generate a property with either an expression body or a return statement.
  • Significantly more configurable properties have been exposed throughout the product. Browse the docs site to see what you can change!

Bug Fixes

  • Fixed: Often the XAML analyser would fail to remove code-issue markers.
  • Fixed: Custom markup extension symbols would not be detected and would cause the unused XAML namespace analyser to trigger.
  • Fixed: The Android resource tooltips would not render over C# resource usages. EG: Resource.Layout.myLayout.
  • Fixed: Image tooltips now work in shared projects.
  • Fixed: Image tooltips now work when the image source is referring to a nested image under a folder. EG: "Icons/logo.png" inside the iOS Resources folder.
  • Fixed: Using the ListView CachingStrategy property in XAML no longer generates an unknown property warning.
  • Fixed: Multiple potential null access that would cause the XAML analyser to fail.
  • Fixed: When using Go-To XAML symbol on a class with a XAML view and code-behind, don't include the auto-generated designer class as an option and jump straight to the code-behind.
  • Fixed: When using Go-To Code Behind Class, don't include the auto-generated designer class as an option and jump straight to the code-behind.