CSHTML5 has now become OpenSilver!

We are happy to announce that CSHTML5 has been significantly improved and rebranded to 'OpenSilver', which stands for 'Open-source reimplementation of Silverlight'. It is fully backward compatible and it can be downloaded from Upgrading from CSHTML5 to OpenSilver is very easy.
Read the FAQ

New Beta 11 of C#/XAML for HTML5 Available! Here are the Top New Features

March 23, 2017 — The new beta 11.0 of C#/XAML for HTML5 is available! The free Visual Studio extension that enables developers to create HTML5 apps using only C# and XAML has reached a new milestone. With both bug fixes and new features, this update is recommended to all users.

Share the news:

What's new since Beta 10.0:


→ Powerful Chart Controls (Pro)


→ New "Silverlight Migration Edition"

  • As you know, the latest version of Firefox (March 2017) no longer supports Silverlight. If you have a Silverlight app, you can migrate it to HTML by following our Silverlight Migration Guide
  • This new Edition makes the migration even easier by providing the same namespaces, class names, members, events, and visual states as Silverlight (subset)
  • It also makes WPF migration easier because the WPF syntax is closer to Silverlight than UWP (Note: only a subset of WPF is supported at the moment)
  • See also: Editions Comparison and Pricing


→ Performance improvement


→ New "HtmlPresenter" control to put custom HTML/CSS code in your XAML (Pro)


→ Improved support for C# and XAML:

  • MatrixTransform
  • TextBox validation, Binding.ValidatesOnExceptions and Binding.NotifyOnValidationError
  • FontStyle (Normal, Italic, Oblique)
  • DependencyProperty.RegisterAttached
  • Negative margins
  • Enum.HasFlag
  • Ability to load an image from a byte array
  • Byte Array serialization and deserialization
  • Ability to pass byte arrays in WPF SOAP web service calls
  • Popup.Placement and Popup.PlacementTarget
  • Keyboard.Modifiers
  • DateTime.Today
  • TextBox.MaxLength
  • TextBox.SelectionStart and TextBox.SelectionLength
  • Stack<T>.ToArray()
  • Decoder.GetChars(), Decoder.GetCharCount(), and Encoding.GetDecorder()
  • VirtualKey.Unknown
  • DataGridHyperlinkColumn.ContentBinding
  • DataGridColumn.Visibility
  • StringBuilder.Remove
  • ComboBox.MaxDropDownHeight for non-native combo-boxes
  • ContextMenuOpening event
  • FrameworkElement.GetBindingExpression, BindingExpression.UpdateSource(), BindingExpression.DataItem, BindingExpression.ParentBinding
  • Support for animating attached properties such as Canvas.Left
  • Transparency in ColorAnimation


→ Work-in-progress support for importing TypeScript Definitions

  • Access thousands of JavaScript libraries from within your C# code, without writing any JavaScript code! (currently in Beta)
  • We are working hard to add support for Kendo UI, including its DatePicker and DataGrid controls, and many other 3rd party controls. Stay tuned on Twitter, Facebook, and the Forums!


→ More than 30 other improvements and bug fixes, including:


  • Smaller optimized "index.html"
  • Support for .NET Framework 4.6 (subset)
  • jQuery.ajax extension (Pro)
  • Possibility to implement missing Mscorlib methods
  • Normalized line breaks across different web browsers so that "TextBox.Text" always returns line breaks in the form of "\r\n" no matter which browser is used
  • In addition to images, sounds, JS, and CSS files, it is now possible to add as resources files with the following extensions: .txt, .xml, .ttf, .woff, .json
  • URLs are automatically converted from strings in bindings.
  • DataGrid: bindings of DataGrid columns that do not specify "Mode" are automatically considered "TwoWay"
  • New methods "Interop.LoadJavaScriptFilesAsync(urls, callback)" and "Interop.LoadCssFilesAsync(urls, callback)" to load multiple files in a given order, and get a callback rather than using the async/await pattern
  • When the Simulator displays JavaScript errors, you now have the option to stop displaying the errors for the duration of the session.
  • Support for the following additional Visual Studio languages: Czech, Polish, Portuguese (Brazil), and Turkish
  • Improved the reliability of the "Control.Focus()" method
  • In XAML, ability to set the values of fields in addition to the value of properties
  • Ability to use the {Binding} markup element with fields in addition to properties
  • The Simulator now displays the number of elements at the bottom of the Visual Tree Inspector
  • Improved the appearance of the non-native ComboBox () (Fixed the arrow icon)
  • Support for the scientific notation (such as 1.7E-06) in PathGeometry and Path.Data
  • Improved the rendering accuracy of the control
  • Improved the XAML Inspector (in the Simulator) so that it is possible to enter multiple lines in properties of type "string"
  • New "Migration Tip" for the not-yet-supported "TransformGroup" (please use "CompositeTransform" instead)

Bug fixes:

  • Fixed an issue that prevented a Style from inheriting ("BasedOn") from another style with the same name
  • Fixed CoreDispatcher.BeginInvoke
  • Fixed an issue that caused some elements to not render at all
  • Fixed an issue that caused some elements to have the wrong Width/Height under FireFox
  • Fixed an issue that caused a "Key already exists" Exception when removing a DataGrid from the visual tree and putting it back (for example via a TabControl)
  • Fixed an issue that prevented ColorAnimation from finishing properly
  • Fixed an issue where setting TabControl.IsSelected to true did not update the header appearance
  • Fixed an issue that caused Opacity to not animate properly on Buttons and other templated controls
  • Fixed an issue that caused the XAML editor to crash when ControlTemplate contained a malformed storyboard.
  • Fixed an issue where Storyboards with "TargetName" caused an exception when called from outside the VisualStateManager.
  • Fixed an issue that caused an exception when the "TargetProperty" of a storyboard contained elements without parenthesis (except the last element), such as "Background.(SolidColorBrush.Color)" instead of "(Control.Background).(SolidColorBrush.Color)"
  • Fixed error "unexpected use of reserved word 'let' in script mode" under Safari
  • Fixed "Array.Empty" compilation error
  • DataGrid: Buttons, hyperlinks, and other UI elements now react to pointer events even when the DataGrid is set to ReadOnly.
  • DataGrid: Fixed an issue that prevented DataContext from working if it was set before the DataGrid was added to the visual tree
  • Fixed compilation warning about "GetColumnActualWidth" and "GetRowActualHeight"
  • Fixed an issue where programmatically unchecking a checkbox did not work properly
  • Fixed exception when setting FrameworkElement.MaxWidth and MaxHeight
  • Fixed CompositeTransform, where transforms were performed in the wrong order, and fixed the default value of RenderTransormOrigin, supposed to be (0,0)
  • Fixed runtime XAML inspector exceptions related to null default properties
  • Fixed an issue where the non-native ComboBox did not display the scrollbar in the drop-down menu
  • Fixed an issue that affected the arguments of Interop.ExecuteJavaScript()
  • Fixed an issue where chaining "TwoWay" bindings did not work properly. An example of scenario is the following: there are 3 text boxes with a TwoWay binding between TextBox1.Text and TextBox2.Text, and another TwoWay binding between TextBox2.Text and TextBox3.Text.
  • Fixed an issue that caused the ComboBoxItem content to not being displayed properly
  • Fixed binding with properties of UserControls
  • Fixed binding with attached properties (such as Canvas.Left and ToolTipService.ToolTip)
  • Fixed an issue with the ScrollBar control where binding the "Value" property did not work properly
  • Fixed programmatically setting the value of a PasswordBox
  • Fixed binding to attached properties defined in a UserControl
  • Fixed binding with "ElementName" when no path was provided


Download Now (Free):

  • To download now, go to and click Download.

    Users who registered for one of the previous betas have been sent an email containing the download link. If you have not received it, please contact us.

Please vote for your most wanted features on

Want to migrate a Silverlight application to the web? Read our Silverlight Migration Guide.


About C#/XAML for HTML5:

C#/XAML for HTML5 is a free extension for Visual Studio that enables developers to create cross-platform HTML5 apps exclusively using C# and XAML.

It is designed for developers using C#, XAML, and Visual Studio to extend application reach to platforms outside the Microsoft ecosystem, including Android, BlackBerry, Chromebook, iOS, Linux, Mac OS, and web browsers. It can be used to migrate Silverlight apps to HTML5, as well as to create new client-side rich web applications without manipulating HTML, CSS, and JavaScript.

Benefits over alternative cross-platform development tools include zero learning curve for C#/XAML developers, a robust well-organized strongly-typed development experience, the ability to share C# code between the client and the server, and the ability to port legacy apps to the modern web with minimal effort, notably to convert Silverlight apps to HTML.

More information and download can be found at:

About Userware:

Userware is a software company founded in 2007 by two experts in Microsoft technologies. It has gained popularity in the recent years for consumer apps such as XLS Editor (#1 Paid Productivity App in the Windows Store for 8 consecutive months), and, a patent-pending online operating system made in Silverlight that can be enhanced Wiki-style by users using an online development environment. With "C#/XAML for HTML5", Userware aims to enable all C#/XAML developers to build cross-platform HTML5 apps with the skills, tools, and code base they already have.

Userware is online at:


You can contact the team behind C#/XAML for HTML5 at:


For more information, please visit