C#/XAML for HTML5 logo

Who said you can't go cross-platform with C#/XAML?

Create HTML5 apps using only C# and XAML with the new free "C#/XAML for HTML5" extension for Visual Studio

Already trusted by over 10,000 registered users, and counting!

Want to migrate a Silverlight application to the web? Read our guide!

Learn More / View Features

Download the free edition now!

At last you can reach all platforms with the skills, tools, and code base you already have

Zero Learning Time.

If you know C#/XAML, you already know everything you need to make apps for HTML5, Android, iOS, Mac, Chromebooks, Linux, Windows, web browsers, and more.

The power of C# and XAML.

Developing robust large-scale HTML5 projects has never been easier with C#/XAML features such as type safety (you can fix errors before the code runs), data binding, user controls, classes, interfaces, inheritance, generics, namespaces, event handlers, data templates, and much more.

The power of Visual Studio.

Step-by-step debugging, code refactoring, intellisense, unit tests, source control, and all the other cool features of Visual Studio work like a charm.

Reuse your code base.

Migrating Silverlight, WPF, Windows Phone, Windows Store, .NET, and other C# projects to HTML5 has never been easier. While only a subset of XAML is currently supported (see current progress below), most of your C# code will work as is.

TIP: Use the "Add as link" feature of VS to share code between projects of different types. Use the "#if" directive to specialize portions of your code based on the project type.

See how easy it is to get started

Check out the sample Controls Showcase:

View in web browser (HTML5)

Tested on: Chrome, IE 10+, Edge, Firefox, Android 4+, Opera, Safari Mobile (iOS 8+), Safari 8+

Also available as stand-alone apps for: iOS, Android

Check out the sample Calculator app:

(taken from the MSDN, originally written in C#/XAML, compiled to HTML5 with almost no modifications)

View in web browser (HTML5)

Tested on: Chrome, IE 10+, Edge, Firefox, Android 4+, Opera, Safari Mobile (iOS 7+), Safari 8+

99 % of C# features are already supported (75% of XAML, 55% of .NET Core). Adding more every day.

Supported Not Yet Supported

C# Language Features

(99% supported!)

- Classes, interfaces, enums, inheritance, generics, event handlers, try/catch, "ref" and "out" keywords, properties, accessors, modifiers, lambda expressions, anonymous methods, extension methods, virtual methods, "var", nullables, automatic properties, partial types, nested types, pragma directives, collection initializers, yield return, sealed...

- New in beta4: Async/await, Linq (Any, AsEnumerable, Cast, Contains, Count, ElementAt, ElementAtOrDefault, Empty, First, FirstOrDefault, OfType, OrderBy, OrderByDescending, Range, Select, SelectMany, Sum, ToArray, ToList, and Where)

- Class libraries, visual studio project references, namespaces...

- New in beta6: C# 6.0

- New in beta8: ResX Resource Files

- the "dynamic" keyword is not supported under VS 2015 and 2017

.NET Types and Framework Classes

(55% supported)

- Object, string, char, int, single, double, bool, DateTime, TimeSpan, List<>, Dictionary<>, Stack<>, Array, Size, Rect, Point, Exception, StringBuilder, Int64, CultureInfo, Encoding, StreamReader, TextReader, MemoryStream, BinaryWriter, BinaryReader, Buffer...

- System.Reflection

- New in beta2: DispatcherTimer

- New in beta3: Http calls (WCF, SOAP, REST, Add Service Reference, Web API support) (read WCF Limitations and Tutorials), WebClient, XmlSerializer, Guid, Dispatcher.BeginInvoke

- New in beta5: Regular Expressions, IsolatedStorage, FileInfo

- New in beta6: ICommand

- New in beta8: Custom Attributes, Tuple2, HashSet2, Extensions (WebSockets, Print, File Open/Save, ZIP Compression...)

- New in beta12: Tuple<>, Printing

- New in beta13: Queue<T>, DataContractSerializer, XDocument, Linq to XML

Coming soon:

- HashSet (please use "HashSet2" instead)

- More .NET types...

XAML Concepts

(75% supported)

- General XAML syntax, XAML layout, Dependency properties

- User Controls

- Code behind

- Events registration (Click, PointerPressed, PointerReleased, PointerMoved, GotFocus, TextChanged, KeyDown...)

- XAML namespaces

- Alignments and margins

- New in beta2: Binding, DataContext, DataTemplate, StaticResource, Styles

- New in beta4: IsEnabled

- New in beta5: IsHitTestVisible, TransformToVisual, Opacity

- New in beta6: CapturePointer, Cursor, Pointer coordinates, Styles BasedOn, DropShadowEffect

- New in beta7: ResourceDictionary, MergedDictionaries, Transforms (CompositeTransform, RotateTransform, ScaleTransform...), OverrideMetadata

- New in beta8: ControlTemplates, Storyboards, Animations, VisualStateManager, OnApplyTemplate, TemplateBinding

- New in beta10: SizeChanged event, ClipToBounds, FindElementsInHostCoordinates, VisualTreeHelper

- New in beta11: MatrixTransform, TextBox validation, RegisterAttached, FontStyle, MaxLength, and much more

- New in beta12: RowSpan/ColumnSpan, and much more

- New in beta13: UIElement.AddHandler (catching handled events too)

- Implicit styles (coming soon)

- Implicit data templates (coming soon)

- Coming soon: support for Generic.xaml, ZIndex, TabIndex, IsTabStop, RadiuxX, RadiusY

- XAMLReader.Load

XAML Types and Controls

(75% supported)

- Button, TextBox, TextBlock, Canvas, StackPanel, Border, Image, Grid, ScrollViewer, Rectangle, WrapPanel, UserControl, Control, Window, Page, Panel

- SolidColorBrush, Named colors, HorizontalAlignment, VerticalAlignment, Orientation, Thickness, CornerRadius...

- New in beta2: ItemsControl, ContentControl

- New in beta3: PasswordBox

- New in beta4: DataGrid, ComboBox, CheckBox, HyperlinkButton

- New in beta5: ListBox

- New in beta6: MediaElement, RadioButton

- New in beta7: Path, Ellipse, Line

- New in beta8: ToggleButton, TabControl, Expander

- New in beta9: LinearGradientBrush

- New in beta10: ChildWindow, ToolTip, Popup, ContextMenu, MenuItem, ScrollBar control, Thumb

- New in beta12: DockPanel, GridSplitter, AutoCompleteBox, DragDropTarget, Inlines, Run

- New in beta13: NumericUpDown, RepeatButton, community-made DatePicker and TimePicker (by TaterJuice)

- Coming soon: Frame, Slider, ProgressBar, TreeView, Label, RTF, ViewBox

List of compatible browsers: Google Chrome 35+, Microsoft Internet Explorer 11+, Microsoft Edge, Android Browser (Android 4+), Safari Mobile (iOS 8+), Safari 8+ (Mac OS Yosemite+), Mozilla Firefox 27+, Opera 24+

Please refer to the Roadmap for details on upcoming features.

Check out these great open-source extensions for CSHTML5:
    - Chart controls
    - JSON Serialization / Deserialization
    - WebSockets
    - SignalR
    - jQuery.ajax
    - PrintHelper
    - FileSaver
    - ZipFile
    - FileOpenDialog
    - Unofficial ArcGIS Mapping control (in progress)
    - Compose Email

Vote for your most wanted features (UserVoice)

View the full list of supported types and methods

View the list of Limitations and Workarounds

Want to migrate a Silverlight application? Read our Silverlight Migration Guide

Other technical topics of interest:

A clear and transparent roadmap

(Subject to change based on users' feedback and other factors)

  • Q2 2014: (Preview) The Preview release focuses on gathering users' feedback. It introduces Visual Studio integration and fine-tunes compatibility with all the main browsers and mobile devices.
  • Q3 2014: (Beta 1) The first beta provides all the main tools to build cross-platform stand-alone HTML5 apps in standard C# and XAML. A subset of C# and XAML is supported that is large enough to build simple useful apps.
  • Q4 2014: (Beta 2) Data Binding, Styles, StaticResource, DataContext, DataTemplate, ItemsControl, ContentControl, design-time XAML preview window, DispatcherTimer, and more.
  • Q1 2015: (Beta 3) WCF, SOAP, REST, "Add Service Reference", Web API support, WebClient, XmlSerializer, Guid, PasswordBox, BeginInvoke, FontFamily, FontWeight, Thickness, BorderBrush, and more.
  • Q2 2015: (Beta 4) Full support of C# 5.0: Linq, Async/Await, DataGrid, ComboBox, CheckBox, HyperlinkButton, IsEnabled, and much more.
  • Q3 2015: (Beta 5) IsolatedStorage, Documentation, sample app available on the Apple AppStore and on GooglePlay, web server to easily Test on Mobile Devices, Regular Expressions support, ListBox, DataGrid item selection, and much more.
  • Q4 2015: (Beta 6) VS 2015 support, ICommand, MediaElement, RadioButton, Pointer/Cursor, drag-and-drop, DropShadowEffect, and much more.
  • Q1 2016: (Beta 7) ResourceDictionary, Path, Ellipse, Line, CompositeTransform, and much more.
  • Q2 2016: (Beta 8) Extensibility, WebSockets, ControlTemplates/Storyboards, ResX, Call JS from C#, Print, File Open/Save, ZIP, Mapping, TabControl, Expander, Custom attributes, "Run from localhost", and much more.
  • MID-2016: (Beta 9) Brand New Simulator, XAML Live Inspector, Up to 20x Faster Compilation, JSON Serializer/Deserializer, DoubleAnimation, ColorAnimation, LinearGradientBrush, StopWatch, StrokeDashArray, Chrome for Android support, resizable Simulator window, remember Simulator settings, and much more.
  • Q3-2016: (Beta 10) Bug Fixing, ChildWindow, ContextMenu, MenuItem, Popup, Thumb control, ToolTip, Improved DateTime support, Right-click event, Min/max width/height, support for non-native ComboBox, FindElementsInHostCoordinates, ScrollBar control, ClipToBounds, and much more.
  • Q1 2017:
    (Beta 11) Charts (Pro), Silverlight Migration Edition, Improved Performance, HtmlPresenter control (Pro), improved C#/XAML support (learn more), experimental support for importing TypeScript Definition Files (Pro), high-performance HtmlCanvas control, jQuery.ajax support (Pro), MatrixTransform, TextBox Binding Validation, BitmapImage.SetSource, MaxLength, and much more (over 30 other new features!)
  • Q3 2017:
    (Beta 12) Visual Studio 2017 compatibility, Grid RowSpan / ColumnSpan, Silverlight Migration Wizard v1, SignalR support, DockPanel, new implementation of the Grid based on the CSS Grid Layout, XAML Editor preview of styles defined in App.xaml and elsewhere, GridSplitter, improved Silverlight Compatibility, TextBlock Inlines and RunsArcSegment, {x:Null}, Printing, SelectionMode.Extended, repeating LinearGradientBrush, AutoCompleteBox, DragDropTarget, Animations RepeatBehavior, and much more (over 50 other new features!)
  • Q4 2017: (Beta 13) Faster compilation, DataContractSerializer, new improved WCF stack (pro), XDocument, XElement, and other Linq to XML classes, improved Simulator renderer (compatible with the latest HTML5 features and aligned with the latest Chromium), RepeatButton, ClickMode.Press and Release, NumericUpDown, and more than 30 other new features and improvements
  • MISC FEATURES BEING DEVELOPED: Partial support for Kendo UI Core (pro), Support for more 3rd party component providers (pro), Frame, Implicit Styles, Slider, ProgressBar, localizable resx, {x:Type } syntax (currently supported without curly braces), Templatable listbox (ItemContainerStyle, etc.), Templatable ComboBox/ComboBoxItem, built-in DatePicker (currently you can use the DatePicker extension), Label, ZIndex, TabIndex, IsTabStop, HttpWebRequest (pro), Authentication (Pro), TransformGroup, {x:Static} syntax, StateTriggers, Implicit DataTemplates, RadiuxX/RadiusY (currently you can use Border.CornerRadius), AncestorType={x:Type ...}, Slider, TreeView, RTF, StrokeDashCap, RadialGradientBrush, easier C#-based access to device features via PhoneGap/Cordova (currently possible only via calls to the "Interop.ExecuteJavaScript" method), more...
  • 2018:
    • Major performance and code optimization: up to 20 times faster execution of "pure C#" code translated to JS, at least half as many DIV elements in the HTML, up to 10 faster loading of XAML controls, and up to 30 times faster loading of the produced apps.
    • Support for select 3rd party component providers. Our goal is to support at least Telerik, DevExpress, ComponentOne, Infragistics, and SyncFusion, plus have a large gallery of 3rd-party controls and free community extensions. Implementation is done by wrapping native JavaScript libraries into C#/XAML-based containers for easy consumption in CSHTML5 projects. For more information on this "wrapping" process, read How to create extensions for CSHTML5 and How to call JS from C#, and look for examples on the Extensions page. In some cases, it is possible to automate the creation of such a wrapper by importing TypeScript Definitions (beta).
    • New sample applications
    • Other features under consideration: an improved XAML preview based on an HTML renderer that supports user controls and 3rd party HTML-based extensions, a visual XAML designer with drag and drop and properties pane, improved compatibility with WPF (especially the WPF syntax for storyboards), AdaptiveTrigger, Data Triggers, Interaction.Behaviors and Interaction.Triggers, more advanced DataGrid (validation, filters, etc.), WritableBitmap, client-side EntityFramework support, and much more.
    • Be sure to vote for your most wanted features on UserVoice
    • You can accelerate the development of specific features by contributing to the development costs. Please contact us and we will quickly send you a quote and a timescale.
For a long time I have been looking for a Xaml to HTML5 solution. I couldn't understand why nobody was doing it. Finally somebody has. :-) Andrew Tierney, CastleSoft
This IS the future. [...] This is the absolute best tool to hit Visual Studio and IS and WILL change the future of .NET and XAML. I am a huge fan, love the work, keep it up. Michael Puckett, II

Download the free edition now!


twitter facebook forums