All Projects → bridgedotnet → Granular

bridgedotnet / Granular

Licence: apache-2.0
WPF for JavaScript

Programming Languages

javascript
184084 projects - #8 most used programming language
typescript
32286 projects
csharp
926 projects
js
455 projects
ts
41 projects

Projects that are alternatives of or similar to Granular

Steamtools
🛠「Steam++」是一个开源跨平台的多功能Steam工具箱。
Stars: ✭ 4,458 (+683.48%)
Mutual labels:  dotnetcore, wpf, xaml
Mahapps.metro.simplechildwindow
A simple child window for MahApps.Metro
Stars: ✭ 339 (-40.42%)
Mutual labels:  wpf, xaml
Wpf Notifyicon
NotifyIcon (aka system tray icon or taskbar icon) for the WPF platform
Stars: ✭ 329 (-42.18%)
Mutual labels:  wpf, xaml
Xamlflair
XamlFlair is an animation library for UWP, WPF, and Uno, built to facilitate Xaml animations using only attached properties.
Stars: ✭ 362 (-36.38%)
Mutual labels:  wpf, xaml
Toastnotifications
Toast notifications for WPF allows you to create and display rich notifications in WPF applications. It's highly configurable with set of built-in options like positions, behaviours, themes and many others. It's extendable, it gives you possibility to create custom and interactive notifications in simply manner.
Stars: ✭ 507 (-10.9%)
Mutual labels:  wpf, xaml
Simple Music Player
Simple Music Player - SimpleMP - Keeps it simple and plays your music
Stars: ✭ 298 (-47.63%)
Mutual labels:  wpf, xaml
Ammyui
Ammy language repository
Stars: ✭ 356 (-37.43%)
Mutual labels:  wpf, xaml
Arcgis Runtime Samples Dotnet
Sample code for ArcGIS Runtime SDK for .NET – UWP, WPF, Xamarin.Android, Xamarin.iOS, and Xamarin.Forms
Stars: ✭ 274 (-51.85%)
Mutual labels:  wpf, xaml
Rapid Xaml Toolkit
Tools to accelerate XAML development within Visual Studio.
Stars: ✭ 427 (-24.96%)
Mutual labels:  wpf, xaml
Windowscommunitytoolkit
The Windows Community Toolkit is a collection of helpers, extensions, and custom controls. It simplifies and demonstrates common developer tasks building UWP and .NET apps for Windows 10. The toolkit is part of the .NET Foundation.
Stars: ✭ 4,654 (+717.93%)
Mutual labels:  wpf, xaml
Core2d
A multi-platform data driven 2D diagram editor.
Stars: ✭ 475 (-16.52%)
Mutual labels:  wpf, xaml
Uno
Build Mobile, Desktop and WebAssembly apps with C# and XAML. Today. Open source and professionally supported.
Stars: ✭ 6,029 (+959.58%)
Mutual labels:  roslyn, xaml
Csconsoleformat
.NET C# library for advanced formatting of console output [Apache]
Stars: ✭ 296 (-47.98%)
Mutual labels:  wpf, xaml
Sharpvectors
SharpVectors - SVG# Reloaded: SVG DOM and Rendering in C# for the .Net.
Stars: ✭ 315 (-44.64%)
Mutual labels:  wpf, xaml
Elmish.wpf
Static WPF views for elmish programs.
Stars: ✭ 287 (-49.56%)
Mutual labels:  wpf, xaml
Handycontrols
Contains some simple and commonly used WPF controls based on HandyControl
Stars: ✭ 347 (-39.02%)
Mutual labels:  wpf, xaml
Materialdesignextensions
Material Design Extensions is based on Material Design in XAML Toolkit to provide additional controls and features for WPF apps
Stars: ✭ 516 (-9.31%)
Mutual labels:  wpf, xaml
ModernWpf
Modern styles and controls for your WPF applications without need WinRT
Stars: ✭ 65 (-88.58%)
Mutual labels:  xaml, wpf
Xamlcss
Style Xaml applications with CSS
Stars: ✭ 271 (-52.37%)
Mutual labels:  wpf, xaml
Calcbinding
Advanced WPF Binding which supports expressions in Path property and other features
Stars: ✭ 425 (-25.31%)
Mutual labels:  wpf, xaml

Granular - WPF for JavaScript

Granular is a re-implementation of WPF, compiled to JavaScript, allowing WPF applications to run in the browser (using Bridge.NET C# to JavaScript compiler).

Installation

  1. Create a Wpf application, call it WpfApplication1
  2. Add a Class Library to the solution, call it WpfApplication1.Web
  3. Install Granular NuGet package into WpfApplication1.Web
    (from Package Manager Console: Install-Package Granular -ProjectName WpfApplication1.Web)
  4. Build
  5. Open WpfApplication1.Web\bin\Debug\bridge\index.html

A list of common issues can be found here

Why?

WPF defines many advanced UI concepts (such as visual / logical trees, layouts, routed events, resources, bindings and many others), and it also naturally supports MVVM and other UI patterns, with Granular we can enjoy all of them in the web.

Features

Granular supports many of WPF features, such as xamls, templates, binding, animations and many others.
A full list of the currently implemented features can be found here

Live demo

GranularPad is a good showcase of the current Granular framework capabilities.
(Don't forget to inspect the visual tree in the DOM :)

A small example of how it works

The following solution contains two projects:

  1. WPF application - This is the project that's being developed and tested, in this case, it contains a window with templated buttons (which incorporates many of WPF capabilities).

  2. Web application - Containing only links to the first WPF application files, it references Granular (instead of WPF) and it's being compiled to JavaScript using Saltarelle.

Visual Studio - Solution window

This is what the WPF application looks like (as you would expect)

WPF application window

And this is what the Web application looks like (exactly the same, except it has a browser around it :)

Web application window

The main advantage of this approach is that the development and testing is done solely in Visual Studio, away from any browser or JavaScript debugger.
Also there is no need to deal with all the html/css and fashionable JS frameworks mess, Granular exposes the WPF strong and well-defined APIs, and the whole development process is much cleaner and faster.

Moving forward

Granular is still under development, and there are a lot of ways it can be moved forward. Any help from developers who are passionate about WPF (or not-so-passionate about the html/css ecosystem) would be much appreciated :)

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].