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.
Tested on: Chrome, IE 10+, Edge, Firefox, Android 4+, Opera, Safari Mobile (iOS 8+), Safari 8+
Tested on: Chrome, IE 10+, Edge, Firefox, Android 4+, Opera, Safari Mobile (iOS 7+), Safari 8+
|Supported||Not Yet Supported|
C# Language Features
- 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", "dynamic", 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
.NET Types and Framework Classes
- 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...
- 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 (read XmlSerializer limitations and tutorials), 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...)
- Tuple (use "Tuple2" instead)
- HashSet (use "HashSet2" instead)
- Queue, Queue<T>
- Non-generic Stack
- More .NET types...
- 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
- Implicit styles (coming soon!)
- Implicit data templates (coming soon!)
- Coming soon: support for Generic.xaml, ZIndex, TabIndex, IsTabStop, RadiuxX, RadiusY
XAML Types and Controls
- 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
- Coming soon: Frame, Slider, ProgressBar, TreeView, DatePicker, Label, RepeatButton, RTF
- GridSplitter, 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+
Check out these great open-source extensions:
- Chart controls
- JSON Serialization / Deserialization
- Unofficial ArcGIS Mapping control (in progress)
- Compose Email
Want to migrate a Silverlight application? Read our Silverlight Migration Guide
Other technical topics of interest:
(Subject to change based on users' feedback and other factors)
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 beta now!